---
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:    102
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_certificate_data_load_cache
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate_data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 69
      functionLinenumberEnd: 103
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - data
      BBCount:         24
      ICount:          156
      EdgeCount:       30
      CyclomaticComplexity: 8
      functionsReached:
        - calloc
        - freerdp_certificate_data_hash_
        - freerdp_certificate_get_fingerprint
        - freerdp_certificate_get_issuer
        - freerdp_certificate_get_pem_ex
        - freerdp_certificate_get_subject
        - strnlen
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate_data.c:72,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:72,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:72,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/certificate_data.c:76,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:77,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:79,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:80,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:81,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:83,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:85,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:86,3'
              BranchSideFuncs:
                - freerdp_certificate_get_pem_ex
                - freerdp_certificate_get_fingerprint
                - freerdp_certificate_get_issuer
                - calloc
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:88,9'
              BranchSideFuncs:
                - freerdp_certificate_get_pem_ex
                - freerdp_certificate_get_fingerprint
                - freerdp_certificate_get_issuer
                - calloc
        - Branch String:   'libfreerdp/crypto/certificate_data.c:90,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:91,3'
              BranchSideFuncs:
                - freerdp_certificate_get_fingerprint
                - freerdp_certificate_get_issuer
                - calloc
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:93,65'
              BranchSideFuncs:
                - freerdp_certificate_get_fingerprint
                - freerdp_certificate_get_issuer
                - calloc
        - Branch String:   'libfreerdp/crypto/certificate_data.c:94,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:95,3'
              BranchSideFuncs:
                - freerdp_certificate_get_issuer
                - calloc
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:97,55'
              BranchSideFuncs:
                - freerdp_certificate_get_issuer
                - calloc
        - Branch String:   'libfreerdp/crypto/certificate_data.c:98,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:99,25'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:101,5'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate_data.c:72,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate_data.c:74,2'
          Dst:             freerdp_certificate_data_hash_
        - Src:             'libfreerdp/crypto/certificate_data.c:76,6'
          Dst:             strnlen
        - Src:             'libfreerdp/crypto/certificate_data.c:79,25'
          Dst:             freerdp_certificate_get_subject
        - Src:             'libfreerdp/crypto/certificate_data.c:81,26'
          Dst:             calloc
        - Src:             'libfreerdp/crypto/certificate_data.c:84,21'
          Dst:             freerdp_certificate_get_pem_ex
        - Src:             'libfreerdp/crypto/certificate_data.c:89,27'
          Dst:             freerdp_certificate_get_pem_ex
        - Src:             'libfreerdp/crypto/certificate_data.c:93,29'
          Dst:             freerdp_certificate_get_fingerprint
        - Src:             'libfreerdp/crypto/certificate_data.c:97,24'
          Dst:             freerdp_certificate_get_issuer
        - Src:             'libfreerdp/crypto/certificate_data.c:99,25'
          Dst:             calloc
    - functionName:    freerdp_certificate_data_hash_
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate_data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 63
      functionLinenumberEnd: 65
      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:64,8'
          Dst:             snprintf
        - Src:             'libfreerdp/crypto/certificate_data.c:65,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:    29
      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:    50
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ensure_lowercase
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate_data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 55
      functionLinenumberEnd: 59
      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:57,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:58,26'
              BranchSideFuncs:
                - tolower
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:59,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate_data.c:56,21'
          Dst:             strnlen
        - Src:             'libfreerdp/crypto/certificate_data.c:58,18'
          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: 272
      functionLinenumberEnd: 275
      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:274,2'
          Dst:             freerdp_certificate_data_hash_
        - Src:             'libfreerdp/crypto/certificate_data.c:275,9'
          Dst:             _strdup
    - functionName:    freerdp_certificate_data_get_hash
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate_data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 264
      functionLinenumberEnd: 269
      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:265,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:266,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:268,9'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    freerdp_certificate_data_equal
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate_data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 242
      functionLinenumberEnd: 261
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - a
        - b
      BBCount:         26
      ICount:          121
      EdgeCount:       30
      CyclomaticComplexity: 6
      functionsReached:
        - freerdp_certificate_data_get_fingerprint
        - strcmp
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate_data.c:245,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:245,2'
              BranchSideFuncs:
                - winpr_int_assert
                - strcmp
                - freerdp_certificate_data_get_fingerprint
                - freerdp_certificate_data_get_fingerprint
                - strcmp
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:245,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/certificate_data.c:246,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:246,2'
              BranchSideFuncs:
                - strcmp
                - freerdp_certificate_data_get_fingerprint
                - freerdp_certificate_data_get_fingerprint
                - strcmp
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:246,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/certificate_data.c:248,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:249,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:250,6'
              BranchSideFuncs:
                - freerdp_certificate_data_get_fingerprint
                - freerdp_certificate_data_get_fingerprint
                - strcmp
        - Branch String:   'libfreerdp/crypto/certificate_data.c:250,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:251,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:253,62'
              BranchSideFuncs:
                - freerdp_certificate_data_get_fingerprint
                - freerdp_certificate_data_get_fingerprint
                - strcmp
        - Branch String:   'libfreerdp/crypto/certificate_data.c:255,11'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:255,14'
              BranchSideFuncs:
                - strcmp
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:258,8'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/certificate_data.c:255,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:256,15'
              BranchSideFuncs:
                - strcmp
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:258,8'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate_data.c:245,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate_data.c:246,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate_data.c:248,6'
          Dst:             strcmp
        - Src:             'libfreerdp/crypto/certificate_data.c:253,21'
          Dst:             freerdp_certificate_data_get_fingerprint
        - Src:             'libfreerdp/crypto/certificate_data.c:254,21'
          Dst:             freerdp_certificate_data_get_fingerprint
        - Src:             'libfreerdp/crypto/certificate_data.c:256,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: 234
      functionLinenumberEnd: 239
      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:235,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:236,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:238,9'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    freerdp_certificate_data_get_issuer
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate_data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 227
      functionLinenumberEnd: 232
      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:228,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:229,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:231,9'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    freerdp_certificate_data_get_subject
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate_data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 219
      functionLinenumberEnd: 224
      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:220,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:221,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:223,9'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    freerdp_certificate_data_get_pem_ex
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate_data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 210
      functionLinenumberEnd: 216
      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:211,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:212,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:213,6'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/certificate_data.c:213,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:214,10'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:215,9'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    freerdp_certificate_data_get_pem
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate_data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 205
      functionLinenumberEnd: 206
      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:206,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: 198
      functionLinenumberEnd: 202
      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:199,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:200,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:201,9'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    freerdp_certificate_data_get_host
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate_data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 191
      functionLinenumberEnd: 195
      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:192,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:193,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:194,9'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    freerdp_certificate_data_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate_data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 175
      functionLinenumberEnd: 188
      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:176,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:177,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:179,7'
              BranchSideFuncs:
                - free
                - freerdp_certificate_free
                - free
                - free
                - free
                - free
                - free
                - free
      Callsites:
        - Src:             'libfreerdp/crypto/certificate_data.c:180,2'
          Dst:             freerdp_certificate_free
    - functionName:    freerdp_certificate_data_new_from_file
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate_data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 163
      functionLinenumberEnd: 172
      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:164,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:165,3'
              BranchSideFuncs:
                - freerdp_certificate_new_from_file
                - freerdp_certificate_data_new_nocopy
                - freerdp_certificate_free
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:167,59'
              BranchSideFuncs:
                - freerdp_certificate_new_from_file
                - freerdp_certificate_data_new_nocopy
                - freerdp_certificate_free
        - Branch String:   'libfreerdp/crypto/certificate_data.c:169,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:170,28'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:171,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate_data.c:167,25'
          Dst:             freerdp_certificate_new_from_file
        - Src:             'libfreerdp/crypto/certificate_data.c:168,29'
          Dst:             freerdp_certificate_data_new_nocopy
        - Src:             'libfreerdp/crypto/certificate_data.c:170,3'
          Dst:             freerdp_certificate_free
    - functionName:    freerdp_certificate_data_new_nocopy
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate_data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 108
      functionLinenumberEnd: 136
      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:111,16'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:111,20'
              BranchSideFuncs:
                - freerdp_certificate_data_free
                - calloc
                - _strdup
                - strlen
                - ensure_lowercase
                - freerdp_certificate_data_load_cache
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:112,3'
              BranchSideFuncs:
                - freerdp_certificate_data_free
        - Branch String:   'libfreerdp/crypto/certificate_data.c:111,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:112,3'
              BranchSideFuncs:
                - calloc
                - freerdp_certificate_data_free
                - _strdup
                - strlen
                - ensure_lowercase
                - freerdp_certificate_data_load_cache
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:114,34'
              BranchSideFuncs:
                - calloc
                - freerdp_certificate_data_free
                - _strdup
                - strlen
                - ensure_lowercase
                - freerdp_certificate_data_load_cache
        - Branch String:   'libfreerdp/crypto/certificate_data.c:116,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:117,3'
              BranchSideFuncs:
                - _strdup
                - freerdp_certificate_data_free
                - strlen
                - ensure_lowercase
                - freerdp_certificate_data_load_cache
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:119,19'
              BranchSideFuncs:
                - _strdup
                - freerdp_certificate_data_free
                - strlen
                - ensure_lowercase
                - freerdp_certificate_data_load_cache
        - Branch String:   'libfreerdp/crypto/certificate_data.c:121,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:122,3'
              BranchSideFuncs:
                - strlen
                - ensure_lowercase
                - freerdp_certificate_data_load_cache
                - freerdp_certificate_data_free
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:123,19'
              BranchSideFuncs:
                - strlen
                - ensure_lowercase
                - freerdp_certificate_data_load_cache
                - freerdp_certificate_data_free
        - Branch String:   'libfreerdp/crypto/certificate_data.c:126,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:128,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:132,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate_data.c:114,34'
          Dst:             calloc
        - Src:             'libfreerdp/crypto/certificate_data.c:120,23'
          Dst:             _strdup
        - Src:             'libfreerdp/crypto/certificate_data.c:123,39'
          Dst:             strlen
        - Src:             'libfreerdp/crypto/certificate_data.c:123,2'
          Dst:             ensure_lowercase
        - Src:             'libfreerdp/crypto/certificate_data.c:126,7'
          Dst:             freerdp_certificate_data_load_cache
        - Src:             'libfreerdp/crypto/certificate_data.c:134,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:    66
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_certificate_data_new_from_pem
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate_data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 150
      functionLinenumberEnd: 159
      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:151,11'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:151,15'
              BranchSideFuncs:
                - freerdp_certificate_new_from_pem
                - freerdp_certificate_data_new_nocopy
                - freerdp_certificate_free
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:152,3'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/certificate_data.c:151,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:152,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:154,58'
              BranchSideFuncs:
                - freerdp_certificate_new_from_pem
                - freerdp_certificate_data_new_nocopy
                - freerdp_certificate_free
        - Branch String:   'libfreerdp/crypto/certificate_data.c:156,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:157,28'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:158,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate_data.c:154,25'
          Dst:             freerdp_certificate_new_from_pem
        - Src:             'libfreerdp/crypto/certificate_data.c:155,29'
          Dst:             freerdp_certificate_data_new_nocopy
        - Src:             'libfreerdp/crypto/certificate_data.c:157,3'
          Dst:             freerdp_certificate_free
    - functionName:    freerdp_certificate_data_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate_data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 140
      functionLinenumberEnd: 145
      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:143,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:143,6'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:144,28'
              BranchSideFuncs:
                - freerdp_certificate_free
      Callsites:
        - Src:             'libfreerdp/crypto/certificate_data.c:141,25'
          Dst:             freerdp_certificate_clone
        - Src:             'libfreerdp/crypto/certificate_data.c:142,29'
          Dst:             freerdp_certificate_data_new_nocopy
        - Src:             'libfreerdp/crypto/certificate_data.c:144,3'
          Dst:             freerdp_certificate_free
    - functionName:    sk_X509_pop_free
      functionSourceFile: '/usr/include/openssl/x509.h'
      linkageType:     InternalLinkage
      functionLinenumber: 99
      functionLinenumberEnd: 99
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - sk
        - freefunc
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - OPENSSL_sk_pop_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/usr/include/openssl/x509.h:99,1'
          Dst:             OPENSSL_sk_pop_free
    - functionName:    OPENSSL_sk_pop_free
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    cert_blob_copy
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1106
      functionLinenumberEnd: 1121
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - dst
        - src
      BBCount:         21
      ICount:          96
      EdgeCount:       23
      CyclomaticComplexity: 4
      functionsReached:
        - cert_blob_free
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:1107,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1107,2'
              BranchSideFuncs:
                - winpr_int_assert
                - cert_blob_free
                - malloc
            - BranchSide:      'libfreerdp/crypto/certificate.c:1107,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/certificate.c:1108,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1108,2'
              BranchSideFuncs:
                - cert_blob_free
                - malloc
            - BranchSide:      'libfreerdp/crypto/certificate.c:1108,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/certificate.c:1111,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1113,22'
              BranchSideFuncs:
                - malloc
            - BranchSide:      'libfreerdp/crypto/certificate.c:1120,2'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/certificate.c:1114,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1115,4'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/certificate.c:1116,17'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1107,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1108,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1110,2'
          Dst:             cert_blob_free
    - functionName:    cert_blob_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 273
      functionLinenumberEnd: 279
      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:274,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:275,3'
              BranchSideFuncs:
                - free
            - BranchSide:      'libfreerdp/crypto/certificate.c:276,7'
              BranchSideFuncs:
                - free
      Callsites:       []
    - functionName:    cert_x509_chain_copy
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1124
      functionLinenumberEnd: 1154
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - cert
        - src
      BBCount:         23
      ICount:          131
      EdgeCount:       28
      CyclomaticComplexity: 7
      functionsReached:
        - calloc
        - cert_blob_copy
        - certificate_free_x509_certificate_chain
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:1125,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1125,2'
              BranchSideFuncs:
                - certificate_free_x509_certificate_chain
                - calloc
                - cert_blob_copy
                - certificate_free_x509_certificate_chain
            - BranchSide:      'libfreerdp/crypto/certificate.c:1125,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/certificate.c:1128,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1129,3'
              BranchSideFuncs:
                - calloc
                - cert_blob_copy
                - certificate_free_x509_certificate_chain
            - BranchSide:      'libfreerdp/crypto/certificate.c:1131,6'
              BranchSideFuncs:
                - calloc
                - cert_blob_copy
                - certificate_free_x509_certificate_chain
        - Branch String:   'libfreerdp/crypto/certificate.c:1131,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1133,24'
              BranchSideFuncs:
                - calloc
                - cert_blob_copy
                - certificate_free_x509_certificate_chain
            - BranchSide:      'libfreerdp/crypto/certificate.c:1153,2'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/certificate.c:1134,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1136,4'
              BranchSideFuncs:
                - cert_blob_copy
                - certificate_free_x509_certificate_chain
            - BranchSide:      'libfreerdp/crypto/certificate.c:1138,17'
              BranchSideFuncs:
                - cert_blob_copy
                - certificate_free_x509_certificate_chain
        - Branch String:   'libfreerdp/crypto/certificate.c:1140,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1142,34'
              BranchSideFuncs:
                - cert_blob_copy
                - certificate_free_x509_certificate_chain
            - BranchSide:      'libfreerdp/crypto/certificate.c:1151,2'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/certificate.c:1145,8'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1147,45'
              BranchSideFuncs:
                - cert_blob_copy
                - certificate_free_x509_certificate_chain
            - BranchSide:      'libfreerdp/crypto/certificate.c:1150,3'
              BranchSideFuncs:
                - cert_blob_copy
                - certificate_free_x509_certificate_chain
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1125,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1127,2'
          Dst:             certificate_free_x509_certificate_chain
        - Src:             'libfreerdp/crypto/certificate.c:1133,17'
          Dst:             calloc
        - Src:             'libfreerdp/crypto/certificate.c:1145,9'
          Dst:             cert_blob_copy
        - Src:             'libfreerdp/crypto/certificate.c:1147,5'
          Dst:             certificate_free_x509_certificate_chain
    - functionName:    certificate_free_x509_certificate_chain
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 460
      functionLinenumberEnd: 476
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - x509_cert_chain
      BBCount:         13
      ICount:          75
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - cert_blob_free
      functionUses:    4
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:461,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:462,3'
              BranchSideFuncs:
                - free
                - cert_blob_free
            - BranchSide:      'libfreerdp/crypto/certificate.c:464,6'
              BranchSideFuncs:
                - free
                - cert_blob_free
        - Branch String:   'libfreerdp/crypto/certificate.c:464,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:466,15'
              BranchSideFuncs:
                - free
                - cert_blob_free
            - BranchSide:      'libfreerdp/crypto/certificate.c:473,7'
              BranchSideFuncs:
                - free
        - Branch String:   'libfreerdp/crypto/certificate.c:466,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:468,28'
              BranchSideFuncs:
                - cert_blob_free
                - free
            - BranchSide:      'libfreerdp/crypto/certificate.c:471,2'
              BranchSideFuncs:
                - free
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:469,4'
          Dst:             cert_blob_free
    - functionName:    winpr_Data_Get_UINT8
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/endian.h'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      char
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - d
      BBCount:         9
      ICount:          35
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/endian.h:40,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/endian.h:40,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/endian.h:40,3'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/include/winpr/endian.h:40,3'
          Dst:             winpr_int_assert
    - functionName:    stream_read_u8
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 144
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      char
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - _s
        - seek
      BBCount:         18
      ICount:          65
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_GetRemainingLength
        - Stream_Seek
        - winpr_Data_Get_UINT8
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:145,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:145,3'
              BranchSideFuncs:
                - Stream_GetRemainingLength
                - winpr_int_assert
                - winpr_Data_Get_UINT8
                - Stream_Seek
            - BranchSide:      'winpr/include/winpr/stream.h:145,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:146,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:146,3'
              BranchSideFuncs:
                - winpr_Data_Get_UINT8
                - Stream_Seek
            - BranchSide:      'winpr/include/winpr/stream.h:146,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:149,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:149,7'
              BranchSideFuncs:
                - Stream_Seek
            - BranchSide:      'winpr/include/winpr/stream.h:150,16'
              BranchSideFuncs:
                - Stream_Seek
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:145,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:146,3'
          Dst:             Stream_GetRemainingLength
        - Src:             'winpr/include/winpr/stream.h:146,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:148,19'
          Dst:             winpr_Data_Get_UINT8
        - Src:             'winpr/include/winpr/stream.h:150,4'
          Dst:             Stream_Seek
    - functionName:    Stream_Seek
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 124
      functionLinenumberEnd: 128
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - s
        - _offset
      BBCount:         15
      ICount:          53
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - winpr_int_assert
      functionUses:    7
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:125,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:125,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - winpr_int_assert
            - BranchSide:      'winpr/include/winpr/stream.h:125,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:126,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:126,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/stream.h:126,3'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:125,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:126,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:126,3'
          Dst:             winpr_int_assert
    - functionName:    certificate_read_x509_certificate
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 295
      functionLinenumberEnd: 434
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - cert
        - info
      BBCount:         81
      ICount:          417
      EdgeCount:       108
      CyclomaticComplexity: 29
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_SafeSeekEx
        - Stream_StaticConstInit
        - WLog_Print_dbg_tag
        - 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
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:305,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:305,2'
              BranchSideFuncs:
                - winpr_int_assert
                - cert_info_free
                - Stream_StaticConstInit
                - ber_read_sequence_tag
                - WLog_Print_dbg_tag
                - cert_info_free
                - 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:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/certificate.c:306,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:306,2'
              BranchSideFuncs:
                - cert_info_free
                - Stream_StaticConstInit
                - ber_read_sequence_tag
                - WLog_Print_dbg_tag
                - cert_info_free
                - 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:306,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/certificate.c:312,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:313,3'
              BranchSideFuncs:
                - ber_read_sequence_tag
                - WLog_Print_dbg_tag
                - cert_info_free
                - 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:315,29'
              BranchSideFuncs:
                - ber_read_sequence_tag
                - WLog_Print_dbg_tag
                - cert_info_free
                - 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:315,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:316,3'
              BranchSideFuncs:
                - ber_read_sequence_tag
                - WLog_Print_dbg_tag
                - cert_info_free
                - 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:318,7'
              BranchSideFuncs:
                - ber_read_sequence_tag
                - WLog_Print_dbg_tag
                - cert_info_free
                - 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:320,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:321,3'
              BranchSideFuncs:
                - ber_read_contextual_tag
                - WLog_Print_dbg_tag
                - cert_info_free
                - 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:323,7'
              BranchSideFuncs:
                - ber_read_contextual_tag
                - WLog_Print_dbg_tag
                - cert_info_free
                - 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:325,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:326,3'
              BranchSideFuncs:
                - ber_read_integer
                - WLog_Print_dbg_tag
                - cert_info_free
                - 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:328,7'
              BranchSideFuncs:
                - ber_read_integer
                - WLog_Print_dbg_tag
                - cert_info_free
                - 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:330,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:331,3'
              BranchSideFuncs:
                - ber_read_integer
                - WLog_Print_dbg_tag
                - cert_info_free
                - 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:333,7'
              BranchSideFuncs:
                - ber_read_integer
                - WLog_Print_dbg_tag
                - cert_info_free
                - 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:337,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:338,3'
              BranchSideFuncs:
                - ber_read_sequence_tag
                - WLog_Print_dbg_tag
                - cert_info_free
                - 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:340,7'
              BranchSideFuncs:
                - ber_read_sequence_tag
                - WLog_Print_dbg_tag
                - cert_info_free
                - 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:343,41'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:344,7'
              BranchSideFuncs:
                - Stream_SafeSeekEx
                - WLog_Print_dbg_tag
                - cert_info_free
                - 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:345,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag
                - cert_info_free
        - Branch String:   'libfreerdp/crypto/certificate.c:343,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:345,3'
              BranchSideFuncs:
                - ber_read_sequence_tag
                - WLog_Print_dbg_tag
                - cert_info_free
                - 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:347,7'
              BranchSideFuncs:
                - ber_read_sequence_tag
                - WLog_Print_dbg_tag
                - cert_info_free
                - 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:350,41'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:350,45'
              BranchSideFuncs:
                - Stream_SafeSeekEx
                - WLog_Print_dbg_tag
                - cert_info_free
                - 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:351,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag
                - cert_info_free
        - Branch String:   'libfreerdp/crypto/certificate.c:350,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:351,3'
              BranchSideFuncs:
                - ber_read_sequence_tag
                - WLog_Print_dbg_tag
                - cert_info_free
                - 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:353,7'
              BranchSideFuncs:
                - ber_read_sequence_tag
                - WLog_Print_dbg_tag
                - cert_info_free
                - 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:356,41'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:356,45'
              BranchSideFuncs:
                - Stream_SafeSeekEx
                - WLog_Print_dbg_tag
                - cert_info_free
                - 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:357,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag
                - cert_info_free
        - Branch String:   'libfreerdp/crypto/certificate.c:356,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:357,3'
              BranchSideFuncs:
                - ber_read_sequence_tag
                - WLog_Print_dbg_tag
                - cert_info_free
                - 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:359,7'
              BranchSideFuncs:
                - ber_read_sequence_tag
                - WLog_Print_dbg_tag
                - cert_info_free
                - 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:362,41'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:362,45'
              BranchSideFuncs:
                - Stream_SafeSeekEx
                - WLog_Print_dbg_tag
                - cert_info_free
                - 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:363,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag
                - cert_info_free
        - Branch String:   'libfreerdp/crypto/certificate.c:362,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:363,3'
              BranchSideFuncs:
                - ber_read_sequence_tag
                - WLog_Print_dbg_tag
                - cert_info_free
                - 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:365,7'
              BranchSideFuncs:
                - ber_read_sequence_tag
                - WLog_Print_dbg_tag
                - cert_info_free
                - 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:368,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:369,3'
              BranchSideFuncs:
                - ber_read_sequence_tag
                - WLog_Print_dbg_tag
                - cert_info_free
                - 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:371,7'
              BranchSideFuncs:
                - ber_read_sequence_tag
                - WLog_Print_dbg_tag
                - cert_info_free
                - 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:374,41'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:375,7'
              BranchSideFuncs:
                - Stream_SafeSeekEx
                - WLog_Print_dbg_tag
                - cert_info_free
                - 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:376,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag
                - cert_info_free
        - Branch String:   'libfreerdp/crypto/certificate.c:374,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:376,3'
              BranchSideFuncs:
                - ber_read_bit_string
                - WLog_Print_dbg_tag
                - cert_info_free
                - 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:378,7'
              BranchSideFuncs:
                - ber_read_bit_string
                - WLog_Print_dbg_tag
                - cert_info_free
                - 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:381,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:382,3'
              BranchSideFuncs:
                - ber_read_sequence_tag
                - WLog_Print_dbg_tag
                - cert_info_free
                - 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:384,7'
              BranchSideFuncs:
                - ber_read_sequence_tag
                - WLog_Print_dbg_tag
                - cert_info_free
                - 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:387,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:388,3'
              BranchSideFuncs:
                - ber_read_integer_length
                - WLog_Print_dbg_tag
                - cert_info_free
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8
                - cert_info_read_modulus
                - ber_read_integer_length
                - cert_info_read_exponent
                - Stream_SafeSeekEx
            - BranchSide:      'libfreerdp/crypto/certificate.c:390,7'
              BranchSideFuncs:
                - ber_read_integer_length
                - WLog_Print_dbg_tag
                - cert_info_free
                - 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:392,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:393,3'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthEx
                - WLog_Print_dbg_tag
                - cert_info_free
                - stream_read_u8
                - cert_info_read_modulus
                - ber_read_integer_length
                - cert_info_read_exponent
                - Stream_SafeSeekEx
            - BranchSide:      'libfreerdp/crypto/certificate.c:395,7'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthEx
                - WLog_Print_dbg_tag
                - cert_info_free
                - stream_read_u8
                - cert_info_read_modulus
                - ber_read_integer_length
                - cert_info_read_exponent
                - Stream_SafeSeekEx
        - Branch String:   'libfreerdp/crypto/certificate.c:400,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:401,4'
              BranchSideFuncs:
                - stream_read_u8
                - cert_info_read_modulus
                - WLog_Print_dbg_tag
                - cert_info_free
                - ber_read_integer_length
                - cert_info_read_exponent
                - Stream_CheckAndLogRequiredLengthEx
                - Stream_SafeSeekEx
            - BranchSide:      'libfreerdp/crypto/certificate.c:403,3'
              BranchSideFuncs:
                - stream_read_u8
                - cert_info_read_modulus
                - WLog_Print_dbg_tag
                - cert_info_free
                - ber_read_integer_length
                - cert_info_read_exponent
                - Stream_CheckAndLogRequiredLengthEx
                - Stream_SafeSeekEx
        - Branch String:   'libfreerdp/crypto/certificate.c:405,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:407,9'
              BranchSideFuncs:
                - Stream_SafeSeekEx
                - WLog_Print_dbg_tag
                - cert_info_free
                - cert_info_read_modulus
                - ber_read_integer_length
                - cert_info_read_exponent
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8
            - BranchSide:      'libfreerdp/crypto/certificate.c:412,2'
              BranchSideFuncs:
                - cert_info_read_modulus
                - WLog_Print_dbg_tag
                - cert_info_free
                - ber_read_integer_length
                - cert_info_read_exponent
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8
                - Stream_SafeSeekEx
        - Branch String:   'libfreerdp/crypto/certificate.c:407,8'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:408,5'
              BranchSideFuncs:
                - cert_info_read_modulus
                - WLog_Print_dbg_tag
                - cert_info_free
                - ber_read_integer_length
                - cert_info_read_exponent
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8
                - Stream_SafeSeekEx
            - BranchSide:      'libfreerdp/crypto/certificate.c:410,18'
              BranchSideFuncs:
                - cert_info_read_modulus
                - WLog_Print_dbg_tag
                - cert_info_free
                - ber_read_integer_length
                - cert_info_read_exponent
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8
                - Stream_SafeSeekEx
        - Branch String:   'libfreerdp/crypto/certificate.c:412,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:400,8'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthEx
                - WLog_Print_dbg_tag
                - cert_info_free
                - stream_read_u8
                - cert_info_read_modulus
                - ber_read_integer_length
                - cert_info_read_exponent
                - Stream_SafeSeekEx
            - BranchSide:      'libfreerdp/crypto/certificate.c:414,7'
              BranchSideFuncs:
                - cert_info_read_modulus
                - WLog_Print_dbg_tag
                - cert_info_free
                - ber_read_integer_length
                - cert_info_read_exponent
        - Branch String:   'libfreerdp/crypto/certificate.c:416,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:417,3'
              BranchSideFuncs:
                - ber_read_integer_length
                - WLog_Print_dbg_tag
                - cert_info_free
                - cert_info_read_exponent
            - BranchSide:      'libfreerdp/crypto/certificate.c:419,7'
              BranchSideFuncs:
                - ber_read_integer_length
                - WLog_Print_dbg_tag
                - cert_info_free
                - cert_info_read_exponent
        - Branch String:   'libfreerdp/crypto/certificate.c:421,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:422,3'
              BranchSideFuncs:
                - cert_info_read_exponent
                - WLog_Print_dbg_tag
                - cert_info_free
            - BranchSide:      'libfreerdp/crypto/certificate.c:424,7'
              BranchSideFuncs:
                - cert_info_read_exponent
                - WLog_Print_dbg_tag
                - cert_info_free
        - Branch String:   'libfreerdp/crypto/certificate.c:426,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:427,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/certificate.c:428,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:305,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:306,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:308,2'
          Dst:             cert_info_free
        - Src:             'libfreerdp/crypto/certificate.c:310,6'
          Dst:             Stream_StaticConstInit
        - Src:             'libfreerdp/crypto/certificate.c:315,7'
          Dst:             ber_read_sequence_tag
        - Src:             'libfreerdp/crypto/certificate.c:320,7'
          Dst:             ber_read_sequence_tag
        - Src:             'libfreerdp/crypto/certificate.c:325,7'
          Dst:             ber_read_contextual_tag
        - Src:             'libfreerdp/crypto/certificate.c:330,7'
          Dst:             ber_read_integer
        - Src:             'libfreerdp/crypto/certificate.c:337,7'
          Dst:             ber_read_integer
        - Src:             'libfreerdp/crypto/certificate.c:343,7'
          Dst:             ber_read_sequence_tag
        - Src:             'libfreerdp/crypto/certificate.c:344,7'
          Dst:             Stream_SafeSeekEx
        - Src:             'libfreerdp/crypto/certificate.c:350,7'
          Dst:             ber_read_sequence_tag
        - Src:             'libfreerdp/crypto/certificate.c:350,45'
          Dst:             Stream_SafeSeekEx
        - Src:             'libfreerdp/crypto/certificate.c:356,7'
          Dst:             ber_read_sequence_tag
        - Src:             'libfreerdp/crypto/certificate.c:356,45'
          Dst:             Stream_SafeSeekEx
        - Src:             'libfreerdp/crypto/certificate.c:362,7'
          Dst:             ber_read_sequence_tag
        - Src:             'libfreerdp/crypto/certificate.c:362,45'
          Dst:             Stream_SafeSeekEx
        - Src:             'libfreerdp/crypto/certificate.c:368,7'
          Dst:             ber_read_sequence_tag
        - Src:             'libfreerdp/crypto/certificate.c:374,7'
          Dst:             ber_read_sequence_tag
        - Src:             'libfreerdp/crypto/certificate.c:375,7'
          Dst:             Stream_SafeSeekEx
        - Src:             'libfreerdp/crypto/certificate.c:381,7'
          Dst:             ber_read_bit_string
        - Src:             'libfreerdp/crypto/certificate.c:387,7'
          Dst:             ber_read_sequence_tag
        - Src:             'libfreerdp/crypto/certificate.c:392,7'
          Dst:             ber_read_integer_length
        - Src:             'libfreerdp/crypto/certificate.c:400,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/certificate.c:403,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/crypto/certificate.c:407,9'
          Dst:             Stream_SafeSeekEx
        - Src:             'libfreerdp/crypto/certificate.c:416,7'
          Dst:             cert_info_read_modulus
        - Src:             'libfreerdp/crypto/certificate.c:421,7'
          Dst:             ber_read_integer_length
        - Src:             'libfreerdp/crypto/certificate.c:426,7'
          Dst:             cert_info_read_exponent
        - Src:             'libfreerdp/crypto/certificate.c:430,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/certificate.c:432,2'
          Dst:             cert_info_free
    - functionName:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 216
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - tag
        - log_level
        - line
        - file
        - fkt
      BBCount:         9
      ICount:          67
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintMessageVA
      functionUses:    33
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/wlog.h:206,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/wlog.h:207,30'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessageVA
            - BranchSide:      'winpr/include/winpr/wlog.h:209,26'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessageVA
        - Branch String:   'winpr/include/winpr/wlog.h:209,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/wlog.h:209,7'
              BranchSideFuncs:
                - WLog_PrintMessageVA
            - BranchSide:      'winpr/include/winpr/wlog.h:212,4'
              BranchSideFuncs:
                - WLog_PrintMessageVA
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:207,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:209,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:213,4'
          Dst:             WLog_PrintMessageVA
    - functionName:    cert_blob_read
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 231
      functionLinenumberEnd: 258
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - blob
        - s
      BBCount:         21
      ICount:          99
      EdgeCount:       24
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_Read
        - cert_blob_free
        - stream_read_u32_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:233,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:233,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,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/certificate.c:236,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:237,3'
              BranchSideFuncs:
                - stream_read_u32_le
                - Stream_CheckAndLogRequiredLengthEx
                - cert_blob_free
                - malloc
                - Stream_Read
            - BranchSide:      'libfreerdp/crypto/certificate.c:239,2'
              BranchSideFuncs:
                - stream_read_u32_le
                - Stream_CheckAndLogRequiredLengthEx
                - cert_blob_free
                - malloc
                - Stream_Read
        - Branch String:   'libfreerdp/crypto/certificate.c:241,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:242,3'
              BranchSideFuncs:
                - malloc
                - cert_blob_free
                - Stream_Read
            - BranchSide:      'libfreerdp/crypto/certificate.c:244,2'
              BranchSideFuncs:
                - malloc
                - cert_blob_free
                - Stream_Read
        - Branch String:   'libfreerdp/crypto/certificate.c:247,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:248,3'
              BranchSideFuncs:
                - Stream_Read
            - BranchSide:      'libfreerdp/crypto/certificate.c:250,14'
              BranchSideFuncs:
                - Stream_Read
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:233,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:234,2'
          Dst:             cert_blob_free
        - Src:             'libfreerdp/crypto/certificate.c:236,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/certificate.c:239,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/crypto/certificate.c:241,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/certificate.c:250,2'
          Dst:             Stream_Read
        - Src:             'libfreerdp/crypto/certificate.c:256,2'
          Dst:             cert_blob_free
    - functionName:    stream_read_u32_le
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 211
      functionLinenumberEnd: 219
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - _s
        - seek
      BBCount:         18
      ICount:          68
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_GetRemainingLength
        - Stream_Seek
        - winpr_Data_Get_UINT32
        - winpr_int_assert
      functionUses:    8
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:213,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:213,3'
              BranchSideFuncs:
                - Stream_GetRemainingLength
                - winpr_int_assert
                - winpr_Data_Get_UINT32
                - Stream_Seek
            - BranchSide:      'winpr/include/winpr/stream.h:213,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:214,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:214,3'
              BranchSideFuncs:
                - winpr_Data_Get_UINT32
                - Stream_Seek
            - BranchSide:      'winpr/include/winpr/stream.h:214,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:217,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:217,7'
              BranchSideFuncs:
                - Stream_Seek
            - BranchSide:      'winpr/include/winpr/stream.h:218,16'
              BranchSideFuncs:
                - Stream_Seek
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:213,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:214,3'
          Dst:             Stream_GetRemainingLength
        - Src:             'winpr/include/winpr/stream.h:214,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:216,20'
          Dst:             winpr_Data_Get_UINT32
        - Src:             'winpr/include/winpr/stream.h:218,4'
          Dst:             Stream_Seek
    - functionName:    Stream_Read
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 699
      functionLinenumberEnd: 705
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - _s
        - _b
        - _n
      BBCount:         24
      ICount:          83
      EdgeCount:       25
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_GetRemainingCapacity
        - Stream_Seek
        - winpr_int_assert
      functionUses:    5
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:700,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:700,3'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_GetRemainingCapacity
                - winpr_int_assert
                - Stream_Seek
            - BranchSide:      'winpr/include/winpr/stream.h:700,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:701,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:701,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - winpr_int_assert
                - Stream_Seek
            - BranchSide:      'winpr/include/winpr/stream.h:701,3'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_GetRemainingCapacity
                - winpr_int_assert
                - Stream_Seek
        - Branch String:   'winpr/include/winpr/stream.h:701,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:701,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - winpr_int_assert
                - Stream_Seek
            - BranchSide:      'winpr/include/winpr/stream.h:701,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:702,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:702,3'
              BranchSideFuncs:
                - Stream_Seek
            - BranchSide:      'winpr/include/winpr/stream.h:702,3'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:700,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:701,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:702,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:702,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:704,3'
          Dst:             Stream_Seek
    - functionName:    winpr_Data_Get_UINT32
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/endian.h'
      linkageType:     InternalLinkage
      functionLinenumber: 113
      functionLinenumberEnd: 123
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - d
      BBCount:         13
      ICount:          69
      EdgeCount:       14
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/endian.h:114,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/endian.h:114,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/endian.h:114,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/endian.h:118,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/endian.h:120,6'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/endian.h:123,10'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/include/winpr/endian.h:114,3'
          Dst:             winpr_int_assert
    - functionName:    certificate_new_x509_certificate_chain
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 443
      functionLinenumberEnd: 451
      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:448,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:448,6'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/certificate.c:449,27'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:446,40'
          Dst:             calloc
    - functionName:    update_x509_from_info
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 528
      functionLinenumberEnd: 639
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - cert
      BBCount:         37
      ICount:          188
      EdgeCount:       46
      CyclomaticComplexity: 11
      functionsReached:
        - BN_bin2bn
        - BN_free
        - BN_new
        - RSA_free
        - RSA_new
        - RSA_set0_key
        - WLog_Print_dbg_tag
        - X509_free
        - winpr_int_assert
        - x509_from_rsa
      functionUses:    4
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:531,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:531,2'
              BranchSideFuncs:
                - X509_free
                - BN_new
                - BN_new
                - RSA_new
                - WLog_Print_dbg_tag
                - WLog_Print_dbg_tag
                - BN_free
                - BN_free
                - RSA_free
                - WLog_Print_dbg_tag
                - winpr_int_assert
                - BN_bin2bn
                - WLog_Print_dbg_tag
                - BN_bin2bn
                - WLog_Print_dbg_tag
                - RSA_set0_key
                - x509_from_rsa
                - WLog_Print_dbg_tag
            - BranchSide:      'libfreerdp/crypto/certificate.c:531,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/certificate.c:542,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:544,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag
                - WLog_Print_dbg_tag
                - BN_free
                - BN_free
                - RSA_free
                - winpr_int_assert
                - BN_bin2bn
                - WLog_Print_dbg_tag
                - BN_bin2bn
                - WLog_Print_dbg_tag
                - RSA_set0_key
                - x509_from_rsa
                - WLog_Print_dbg_tag
            - BranchSide:      'libfreerdp/crypto/certificate.c:549,7'
              BranchSideFuncs:
                - WLog_Print_dbg_tag
                - WLog_Print_dbg_tag
                - BN_free
                - BN_free
                - RSA_free
                - winpr_int_assert
                - BN_bin2bn
                - WLog_Print_dbg_tag
                - BN_bin2bn
                - WLog_Print_dbg_tag
                - RSA_set0_key
                - x509_from_rsa
                - WLog_Print_dbg_tag
        - Branch String:   'libfreerdp/crypto/certificate.c:549,11'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:549,15'
              BranchSideFuncs:
                - WLog_Print_dbg_tag
                - WLog_Print_dbg_tag
                - BN_free
                - BN_free
                - RSA_free
                - winpr_int_assert
                - BN_bin2bn
                - WLog_Print_dbg_tag
                - BN_bin2bn
                - WLog_Print_dbg_tag
                - RSA_set0_key
                - x509_from_rsa
                - WLog_Print_dbg_tag
            - BranchSide:      'libfreerdp/crypto/certificate.c:551,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag
                - WLog_Print_dbg_tag
                - BN_free
                - BN_free
                - RSA_free
        - Branch String:   'libfreerdp/crypto/certificate.c:549,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:551,3'
              BranchSideFuncs:
                - winpr_int_assert
                - BN_bin2bn
                - WLog_Print_dbg_tag
                - WLog_Print_dbg_tag
                - BN_free
                - BN_free
                - RSA_free
                - BN_bin2bn
                - WLog_Print_dbg_tag
                - RSA_set0_key
                - x509_from_rsa
                - WLog_Print_dbg_tag
            - BranchSide:      'libfreerdp/crypto/certificate.c:555,2'
              BranchSideFuncs:
                - winpr_int_assert
                - BN_bin2bn
                - WLog_Print_dbg_tag
                - WLog_Print_dbg_tag
                - BN_free
                - BN_free
                - RSA_free
                - BN_bin2bn
                - WLog_Print_dbg_tag
                - RSA_set0_key
                - x509_from_rsa
                - WLog_Print_dbg_tag
        - Branch String:   'libfreerdp/crypto/certificate.c:555,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:555,2'
              BranchSideFuncs:
                - BN_bin2bn
                - WLog_Print_dbg_tag
                - WLog_Print_dbg_tag
                - BN_free
                - BN_free
                - RSA_free
                - BN_bin2bn
                - WLog_Print_dbg_tag
                - RSA_set0_key
                - x509_from_rsa
                - WLog_Print_dbg_tag
            - BranchSide:      'libfreerdp/crypto/certificate.c:555,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/certificate.c:556,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:558,3'
              BranchSideFuncs:
                - BN_bin2bn
                - WLog_Print_dbg_tag
                - WLog_Print_dbg_tag
                - BN_free
                - BN_free
                - RSA_free
                - RSA_set0_key
                - x509_from_rsa
                - WLog_Print_dbg_tag
            - BranchSide:      'libfreerdp/crypto/certificate.c:562,17'
              BranchSideFuncs:
                - BN_bin2bn
                - WLog_Print_dbg_tag
                - WLog_Print_dbg_tag
                - BN_free
                - BN_free
                - RSA_free
                - RSA_set0_key
                - x509_from_rsa
                - WLog_Print_dbg_tag
        - Branch String:   'libfreerdp/crypto/certificate.c:562,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:564,3'
              BranchSideFuncs:
                - RSA_set0_key
                - x509_from_rsa
                - WLog_Print_dbg_tag
                - BN_free
                - BN_free
                - RSA_free
                - WLog_Print_dbg_tag
            - BranchSide:      'libfreerdp/crypto/certificate.c:569,31'
              BranchSideFuncs:
                - RSA_set0_key
                - x509_from_rsa
                - WLog_Print_dbg_tag
                - BN_free
                - BN_free
                - RSA_free
                - WLog_Print_dbg_tag
        - Branch String:   'libfreerdp/crypto/certificate.c:570,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:572,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag
                - WLog_Print_dbg_tag
                - BN_free
                - BN_free
                - RSA_free
            - BranchSide:      'libfreerdp/crypto/certificate.c:576,29'
              BranchSideFuncs:
                - x509_from_rsa
                - WLog_Print_dbg_tag
                - BN_free
                - BN_free
                - RSA_free
        - Branch String:   'libfreerdp/crypto/certificate.c:621,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:622,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag
                - BN_free
                - BN_free
                - RSA_free
            - BranchSide:      'libfreerdp/crypto/certificate.c:624,5'
              BranchSideFuncs:
                - WLog_Print_dbg_tag
                - BN_free
                - BN_free
                - RSA_free
        - Branch String:   'libfreerdp/crypto/certificate.c:627,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:628,3'
              BranchSideFuncs:
                - BN_free
                - BN_free
                - RSA_free
            - BranchSide:      'libfreerdp/crypto/certificate.c:631,6'
              BranchSideFuncs:
                - BN_free
                - BN_free
                - RSA_free
        - Branch String:   'libfreerdp/crypto/certificate.c:631,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:632,12'
              BranchSideFuncs:
                - RSA_free
            - BranchSide:      'libfreerdp/crypto/certificate.c:636,11'
              BranchSideFuncs:
                - BN_free
                - BN_free
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:531,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:533,2'
          Dst:             X509_free
        - Src:             'libfreerdp/crypto/certificate.c:538,14'
          Dst:             BN_new
        - Src:             'libfreerdp/crypto/certificate.c:539,16'
          Dst:             BN_new
        - Src:             'libfreerdp/crypto/certificate.c:541,13'
          Dst:             RSA_new
        - Src:             'libfreerdp/crypto/certificate.c:544,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/certificate.c:551,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/certificate.c:555,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:556,7'
          Dst:             BN_bin2bn
        - Src:             'libfreerdp/crypto/certificate.c:558,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/certificate.c:562,7'
          Dst:             BN_bin2bn
        - Src:             'libfreerdp/crypto/certificate.c:564,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/certificate.c:569,18'
          Dst:             RSA_set0_key
        - Src:             'libfreerdp/crypto/certificate.c:572,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/certificate.c:576,15'
          Dst:             x509_from_rsa
        - Src:             'libfreerdp/crypto/certificate.c:628,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/certificate.c:632,3'
          Dst:             RSA_free
        - Src:             'libfreerdp/crypto/certificate.c:636,3'
          Dst:             BN_free
        - Src:             'libfreerdp/crypto/certificate.c:637,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:    6
      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:    winpr_Data_Get_UINT16
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/endian.h'
      linkageType:     InternalLinkage
      functionLinenumber: 59
      functionLinenumberEnd: 69
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - d
      BBCount:         13
      ICount:          73
      EdgeCount:       14
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/endian.h:60,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/endian.h:60,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/endian.h:60,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/endian.h:64,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/endian.h:66,6'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/endian.h:69,10'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/include/winpr/endian.h:60,3'
          Dst:             winpr_int_assert
    - functionName:    certificate_process_server_public_signature
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 709
      functionLinenumberEnd: 793
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - certificate
        - sigdata
        - sigdatalen
        - s
        - siglen
      BBCount:         12
      ICount:          64
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_Read
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:710,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:710,2'
              BranchSideFuncs:
                - Stream_Read
            - BranchSide:      'libfreerdp/crypto/certificate.c:710,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/certificate.c:737,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:738,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/certificate.c:792,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:710,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:735,2'
          Dst:             Stream_Read
    - functionName:    certificate_process_server_public_key
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 644
      functionLinenumberEnd: 704
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - cert
        - s
        - length
      BBCount:         36
      ICount:          221
      EdgeCount:       43
      CyclomaticComplexity: 9
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_Read
        - Stream_Seek
        - WLog_Print_dbg_tag
        - cert_info_free
        - memcmp
        - realloc
        - stream_read_u32_le
        - update_x509_from_info
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:650,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:650,2'
              BranchSideFuncs:
                - winpr_int_assert
                - 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_Print_dbg_tag
                - Stream_Read
                - Stream_Seek
                - update_x509_from_info
                - WLog_Print_dbg_tag
                - WLog_Print_dbg_tag
                - WLog_Print_dbg_tag
                - WLog_Print_dbg_tag
            - BranchSide:      'libfreerdp/crypto/certificate.c:650,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/certificate.c:651,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:651,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_Print_dbg_tag
                - Stream_Read
                - Stream_Seek
                - update_x509_from_info
                - WLog_Print_dbg_tag
                - WLog_Print_dbg_tag
                - WLog_Print_dbg_tag
                - WLog_Print_dbg_tag
            - BranchSide:      'libfreerdp/crypto/certificate.c:651,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/certificate.c:653,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:654,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_Print_dbg_tag
                - Stream_Read
                - Stream_Seek
                - update_x509_from_info
                - WLog_Print_dbg_tag
                - WLog_Print_dbg_tag
                - WLog_Print_dbg_tag
                - WLog_Print_dbg_tag
            - BranchSide:      'libfreerdp/crypto/certificate.c:656,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_Print_dbg_tag
                - Stream_Read
                - Stream_Seek
                - update_x509_from_info
                - WLog_Print_dbg_tag
                - WLog_Print_dbg_tag
                - WLog_Print_dbg_tag
                - WLog_Print_dbg_tag
        - Branch String:   'libfreerdp/crypto/certificate.c:658,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:660,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag
            - BranchSide:      'libfreerdp/crypto/certificate.c:664,23'
              BranchSideFuncs:
                - cert_info_free
                - stream_read_u32_le
                - stream_read_u32_le
                - stream_read_u32_le
                - Stream_Read
                - Stream_CheckAndLogRequiredLengthEx
                - realloc
                - WLog_Print_dbg_tag
                - Stream_Read
                - Stream_Seek
                - update_x509_from_info
                - WLog_Print_dbg_tag
                - WLog_Print_dbg_tag
                - WLog_Print_dbg_tag
        - Branch String:   'libfreerdp/crypto/certificate.c:672,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:674,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag
            - BranchSide:      'libfreerdp/crypto/certificate.c:677,7'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthEx
                - realloc
                - WLog_Print_dbg_tag
                - Stream_Read
                - Stream_Seek
                - update_x509_from_info
                - WLog_Print_dbg_tag
                - WLog_Print_dbg_tag
        - Branch String:   'libfreerdp/crypto/certificate.c:677,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:678,3'
              BranchSideFuncs:
                - realloc
                - WLog_Print_dbg_tag
                - Stream_Read
                - Stream_Seek
                - update_x509_from_info
                - WLog_Print_dbg_tag
                - WLog_Print_dbg_tag
            - BranchSide:      'libfreerdp/crypto/certificate.c:679,6'
              BranchSideFuncs:
                - realloc
                - WLog_Print_dbg_tag
                - Stream_Read
                - Stream_Seek
                - update_x509_from_info
                - WLog_Print_dbg_tag
                - WLog_Print_dbg_tag
        - Branch String:   'libfreerdp/crypto/certificate.c:679,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:681,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag
            - BranchSide:      'libfreerdp/crypto/certificate.c:685,6'
              BranchSideFuncs:
                - realloc
                - WLog_Print_dbg_tag
                - Stream_Read
                - Stream_Seek
                - update_x509_from_info
                - WLog_Print_dbg_tag
        - Branch String:   'libfreerdp/crypto/certificate.c:685,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:687,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag
            - BranchSide:      'libfreerdp/crypto/certificate.c:691,24'
              BranchSideFuncs:
                - realloc
                - WLog_Print_dbg_tag
                - Stream_Read
                - Stream_Seek
                - update_x509_from_info
        - Branch String:   'libfreerdp/crypto/certificate.c:694,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:696,3'
              BranchSideFuncs:
                - Stream_Read
                - Stream_Seek
                - update_x509_from_info
            - BranchSide:      'libfreerdp/crypto/certificate.c:699,18'
              BranchSideFuncs:
                - Stream_Read
                - Stream_Seek
                - update_x509_from_info
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:650,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:651,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:653,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/certificate.c:656,2'
          Dst:             Stream_Read
        - Src:             'libfreerdp/crypto/certificate.c:658,6'
          Dst:             memcmp
        - Src:             'libfreerdp/crypto/certificate.c:660,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/certificate.c:665,2'
          Dst:             cert_info_free
        - Src:             'libfreerdp/crypto/certificate.c:667,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/crypto/certificate.c:668,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/crypto/certificate.c:669,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/crypto/certificate.c:670,2'
          Dst:             Stream_Read
        - Src:             'libfreerdp/crypto/certificate.c:674,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/certificate.c:677,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/certificate.c:681,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/certificate.c:687,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/certificate.c:692,14'
          Dst:             realloc
        - Src:             'libfreerdp/crypto/certificate.c:696,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/certificate.c:701,2'
          Dst:             Stream_Read
        - Src:             'libfreerdp/crypto/certificate.c:702,2'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/crypto/certificate.c:703,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:    2
      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:    13
      BranchProfiles:  []
      Callsites:       []
    - functionName:    stream_read_u16_le
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 163
      functionLinenumberEnd: 171
      functionDepth:   0
      returnType:      short
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - _s
        - seek
      BBCount:         18
      ICount:          68
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_GetRemainingLength
        - Stream_Seek
        - winpr_Data_Get_UINT16
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:165,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:165,3'
              BranchSideFuncs:
                - Stream_GetRemainingLength
                - winpr_int_assert
                - winpr_Data_Get_UINT16
                - Stream_Seek
            - BranchSide:      'winpr/include/winpr/stream.h:165,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:166,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:166,3'
              BranchSideFuncs:
                - winpr_Data_Get_UINT16
                - Stream_Seek
            - BranchSide:      'winpr/include/winpr/stream.h:166,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:169,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:169,7'
              BranchSideFuncs:
                - Stream_Seek
            - BranchSide:      'winpr/include/winpr/stream.h:170,16'
              BranchSideFuncs:
                - Stream_Seek
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:165,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:166,3'
          Dst:             Stream_GetRemainingLength
        - Src:             'winpr/include/winpr/stream.h:166,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:168,20'
          Dst:             winpr_Data_Get_UINT16
        - Src:             'winpr/include/winpr/stream.h:170,4'
          Dst:             Stream_Seek
    - functionName:    cert_blob_write
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 261
      functionLinenumberEnd: 270
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - blob
        - s
      BBCount:         26
      ICount:          97
      EdgeCount:       27
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write
        - Stream_Write_UINT32_unchecked
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:262,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:262,2'
              BranchSideFuncs:
                - Stream_EnsureRemainingCapacity
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked
                - Stream_Write
            - BranchSide:      'libfreerdp/crypto/certificate.c:262,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/certificate.c:264,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:265,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked
                - Stream_Write
            - BranchSide:      'libfreerdp/crypto/certificate.c:267,2'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked
                - Stream_Write
        - Branch String:   'libfreerdp/crypto/certificate.c:267,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:267,2'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked
                - Stream_Write
            - BranchSide:      'libfreerdp/crypto/certificate.c:267,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/certificate.c:267,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:267,2'
              BranchSideFuncs:
                - Stream_Write_UINT32_unchecked
                - Stream_Write
            - BranchSide:      'libfreerdp/crypto/certificate.c:267,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:262,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:264,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/crypto/certificate.c:267,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:267,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:267,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/crypto/certificate.c:268,2'
          Dst:             Stream_Write
    - functionName:    Stream_Write_UINT32_unchecked
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1054
      functionLinenumberEnd: 1061
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - _s
        - _v
      BBCount:         21
      ICount:          70
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - winpr_Data_Write_UINT32
        - winpr_int_assert
      functionUses:    8
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:1055,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:1055,3'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_GetRemainingCapacity
                - winpr_int_assert
                - winpr_Data_Write_UINT32
            - BranchSide:      'winpr/include/winpr/stream.h:1055,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:1056,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:1056,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - winpr_int_assert
                - winpr_Data_Write_UINT32
            - BranchSide:      'winpr/include/winpr/stream.h:1056,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:1057,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:1057,3'
              BranchSideFuncs:
                - winpr_Data_Write_UINT32
            - BranchSide:      'winpr/include/winpr/stream.h:1057,3'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1055,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1056,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1057,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:1057,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1059,3'
          Dst:             winpr_Data_Write_UINT32
    - functionName:    Stream_Write
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1154
      functionLinenumberEnd: 1163
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - _s
        - _b
        - _n
      BBCount:         24
      ICount:          80
      EdgeCount:       25
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_GetRemainingCapacity
        - Stream_Seek
        - winpr_int_assert
      functionUses:    5
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:1155,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:1155,7'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - Stream_GetRemainingCapacity
                - winpr_int_assert
                - Stream_Seek
            - BranchSide:      'winpr/include/winpr/stream.h:1157,4'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - Stream_GetRemainingCapacity
                - winpr_int_assert
                - Stream_Seek
        - Branch String:   'winpr/include/winpr/stream.h:1157,4'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:1157,4'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_GetRemainingCapacity
                - winpr_int_assert
                - Stream_Seek
            - BranchSide:      'winpr/include/winpr/stream.h:1157,4'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:1158,4'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:1158,4'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - winpr_int_assert
                - Stream_Seek
            - BranchSide:      'winpr/include/winpr/stream.h:1158,4'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:1159,4'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:1159,4'
              BranchSideFuncs:
                - Stream_Seek
            - BranchSide:      'winpr/include/winpr/stream.h:1159,4'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1157,4'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1158,4'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1159,4'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:1159,4'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1161,4'
          Dst:             Stream_Seek
    - functionName:    winpr_Data_Write_UINT32
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/endian.h'
      linkageType:     InternalLinkage
      functionLinenumber: 258
      functionLinenumberEnd: 263
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - d
        - v
      BBCount:         9
      ICount:          48
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_Data_Write_UINT16
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/endian.h:259,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/endian.h:259,3'
              BranchSideFuncs:
                - winpr_Data_Write_UINT16
                - winpr_Data_Write_UINT16
            - BranchSide:      'winpr/include/winpr/endian.h:259,3'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/include/winpr/endian.h:259,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/endian.h:261,3'
          Dst:             winpr_Data_Write_UINT16
        - Src:             'winpr/include/winpr/endian.h:262,3'
          Dst:             winpr_Data_Write_UINT16
    - functionName:    winpr_Data_Write_UINT16
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/endian.h'
      linkageType:     InternalLinkage
      functionLinenumber: 235
      functionLinenumberEnd: 240
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - d
        - v
      BBCount:         9
      ICount:          51
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/endian.h:236,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/endian.h:236,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/endian.h:236,3'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/include/winpr/endian.h:236,3'
          Dst:             winpr_int_assert
    - functionName:    Stream_Fill
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1200
      functionLinenumberEnd: 1205
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - size_t
      constantsTouched: []
      argNames:
        - _s
        - _v
        - _n
      BBCount:         15
      ICount:          60
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - Stream_Seek
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:1201,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:1201,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - winpr_int_assert
                - Stream_Seek
            - BranchSide:      'winpr/include/winpr/stream.h:1201,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:1202,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:1202,3'
              BranchSideFuncs:
                - Stream_Seek
            - BranchSide:      'winpr/include/winpr/stream.h:1202,3'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1201,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1202,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:1202,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1204,3'
          Dst:             Stream_Seek
    - functionName:    Stream_Zero
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1208
      functionLinenumberEnd: 1210
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - _s
        - _n
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_Fill
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1209,3'
          Dst:             Stream_Fill
    - functionName:    cert_write_rsa_signature
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 902
      functionLinenumberEnd: 920
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - s
        - sigData
        - sigDataLen
      BBCount:         28
      ICount:          90
      EdgeCount:       30
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write
        - Stream_Write_UINT16_unchecked
        - Stream_Zero
        - crypto_rsa_private_encrypt
        - winpr_Digest
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:907,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:908,3'
              BranchSideFuncs:
                - crypto_rsa_private_encrypt
                - Stream_EnsureRemainingCapacity
                - Stream_Write_UINT16_unchecked
                - Stream_Write_UINT16_unchecked
                - Stream_Write
                - Stream_Zero
            - BranchSide:      'libfreerdp/crypto/certificate.c:910,29'
              BranchSideFuncs:
                - crypto_rsa_private_encrypt
                - Stream_EnsureRemainingCapacity
                - Stream_Write_UINT16_unchecked
                - Stream_Write_UINT16_unchecked
                - Stream_Write
                - Stream_Zero
        - Branch String:   'libfreerdp/crypto/certificate.c:913,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:914,3'
              BranchSideFuncs:
                - Stream_Write_UINT16_unchecked
                - Stream_Write_UINT16_unchecked
                - Stream_Write
                - Stream_Zero
            - BranchSide:      'libfreerdp/crypto/certificate.c:915,2'
              BranchSideFuncs:
                - Stream_Write_UINT16_unchecked
                - Stream_Write_UINT16_unchecked
                - Stream_Write
                - Stream_Zero
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:907,7'
          Dst:             winpr_Digest
        - Src:             'libfreerdp/crypto/certificate.c:910,2'
          Dst:             crypto_rsa_private_encrypt
        - Src:             'libfreerdp/crypto/certificate.c:913,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/crypto/certificate.c:915,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/crypto/certificate.c:916,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/crypto/certificate.c:917,2'
          Dst:             Stream_Write
        - Src:             'libfreerdp/crypto/certificate.c:918,2'
          Dst:             Stream_Zero
    - functionName:    Stream_Write_UINT16_unchecked
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 892
      functionLinenumberEnd: 899
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - _s
        - _v
      BBCount:         21
      ICount:          70
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - winpr_Data_Write_UINT16
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:893,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:893,3'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_GetRemainingCapacity
                - winpr_int_assert
                - winpr_Data_Write_UINT16
            - BranchSide:      'winpr/include/winpr/stream.h:893,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:894,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:894,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - winpr_int_assert
                - winpr_Data_Write_UINT16
            - BranchSide:      'winpr/include/winpr/stream.h:894,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:895,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:895,3'
              BranchSideFuncs:
                - winpr_Data_Write_UINT16
            - BranchSide:      'winpr/include/winpr/stream.h:895,3'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:893,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:894,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:895,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:895,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:897,3'
          Dst:             winpr_Data_Write_UINT16
    - functionName:    cert_write_rsa_public_key
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 873
      functionLinenumberEnd: 899
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - cert
      BBCount:         80
      ICount:          264
      EdgeCount:       81
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - Stream_Zero
        - freerdp_certificate_is_rsa
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:874,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:874,2'
              BranchSideFuncs:
                - freerdp_certificate_is_rsa
                - winpr_int_assert
                - winpr_int_assert
                - Stream_EnsureRemainingCapacity
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked
                - Stream_Write
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked
                - Stream_Write
                - Stream_Write
                - Stream_Zero
            - BranchSide:      'libfreerdp/crypto/certificate.c:874,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/certificate.c:875,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:875,2'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_EnsureRemainingCapacity
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked
                - Stream_Write
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked
                - Stream_Write
                - Stream_Write
                - Stream_Zero
            - BranchSide:      'libfreerdp/crypto/certificate.c:875,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/certificate.c:887,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:887,2'
              BranchSideFuncs:
                - Stream_EnsureRemainingCapacity
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked
                - Stream_Write
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked
                - Stream_Write
                - Stream_Write
                - Stream_Zero
            - BranchSide:      'libfreerdp/crypto/certificate.c:887,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/certificate.c:888,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:889,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked
                - Stream_Write
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked
                - Stream_Write
                - Stream_Write
                - Stream_Zero
            - BranchSide:      'libfreerdp/crypto/certificate.c:890,2'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked
                - Stream_Write
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked
                - Stream_Write
                - Stream_Write
                - Stream_Zero
        - Branch String:   'libfreerdp/crypto/certificate.c:890,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:890,2'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked
                - Stream_Write
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked
                - Stream_Write
                - Stream_Write
                - Stream_Zero
            - BranchSide:      'libfreerdp/crypto/certificate.c:890,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/certificate.c:890,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:890,2'
              BranchSideFuncs:
                - Stream_Write_UINT16_unchecked
                - Stream_Write
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked
                - Stream_Write
                - Stream_Write
                - Stream_Zero
            - BranchSide:      'libfreerdp/crypto/certificate.c:890,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/certificate.c:892,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:892,2'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked
                - Stream_Write
                - Stream_Write
                - Stream_Zero
            - BranchSide:      'libfreerdp/crypto/certificate.c:892,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/certificate.c:892,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:892,2'
              BranchSideFuncs:
                - Stream_Write_UINT32_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked
                - Stream_Write
                - Stream_Write
                - Stream_Zero
            - BranchSide:      'libfreerdp/crypto/certificate.c:892,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/certificate.c:893,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:893,2'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked
                - Stream_Write
                - Stream_Write
                - Stream_Zero
            - BranchSide:      'libfreerdp/crypto/certificate.c:893,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/certificate.c:893,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:893,2'
              BranchSideFuncs:
                - Stream_Write_UINT32_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked
                - Stream_Write
                - Stream_Write
                - Stream_Zero
            - BranchSide:      'libfreerdp/crypto/certificate.c:893,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/certificate.c:894,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:894,2'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked
                - Stream_Write
                - Stream_Write
                - Stream_Zero
            - BranchSide:      'libfreerdp/crypto/certificate.c:894,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/certificate.c:894,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:894,2'
              BranchSideFuncs:
                - Stream_Write_UINT32_unchecked
                - Stream_Write
                - Stream_Write
                - Stream_Zero
            - BranchSide:      'libfreerdp/crypto/certificate.c:894,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:874,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:875,2'
          Dst:             freerdp_certificate_is_rsa
        - Src:             'libfreerdp/crypto/certificate.c:875,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:887,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:888,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/crypto/certificate.c:890,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:890,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:890,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/crypto/certificate.c:891,2'
          Dst:             Stream_Write
        - Src:             'libfreerdp/crypto/certificate.c:892,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:892,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:892,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/crypto/certificate.c:893,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:893,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:893,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/crypto/certificate.c:894,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:894,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:894,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/crypto/certificate.c:895,2'
          Dst:             Stream_Write
        - Src:             'libfreerdp/crypto/certificate.c:896,2'
          Dst:             Stream_Write
        - Src:             'libfreerdp/crypto/certificate.c:897,2'
          Dst:             Stream_Zero
    - functionName:    freerdp_certificate_is_rsa
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1756
      functionLinenumberEnd: 1758
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - cert
      BBCount:         9
      ICount:          33
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - is_rsa_key
        - winpr_int_assert
      functionUses:    5
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:1757,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1757,2'
              BranchSideFuncs:
                - is_rsa_key
            - BranchSide:      'libfreerdp/crypto/certificate.c:1757,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1757,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1758,9'
          Dst:             is_rsa_key
    - functionName:    is_rsa_key
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 286
      functionLinenumberEnd: 292
      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:288,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:289,3'
              BranchSideFuncs:
                - EVP_PKEY_id
            - BranchSide:      'libfreerdp/crypto/certificate.c:291,22'
              BranchSideFuncs:
                - EVP_PKEY_id
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:287,18'
          Dst:             X509_get0_pubkey
        - Src:             'libfreerdp/crypto/certificate.c:291,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: 1258
      functionLinenumberEnd: 1260
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - _s
      BBCount:         9
      ICount:          32
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    9
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:1259,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:1259,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/stream.h:1259,3'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1259,3'
          Dst:             winpr_int_assert
    - functionName:    freerdp_certificate_get_RSA
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1713
      functionLinenumberEnd: 1724
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - cert
      BBCount:         14
      ICount:          60
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - EVP_PKEY_get1_RSA
        - X509_get0_pubkey
        - freerdp_certificate_is_rsa
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:1714,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1714,2'
              BranchSideFuncs:
                - freerdp_certificate_is_rsa
                - X509_get0_pubkey
                - EVP_PKEY_get1_RSA
            - BranchSide:      'libfreerdp/crypto/certificate.c:1714,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/certificate.c:1716,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1717,3'
              BranchSideFuncs:
                - X509_get0_pubkey
                - EVP_PKEY_get1_RSA
            - BranchSide:      'libfreerdp/crypto/certificate.c:1719,38'
              BranchSideFuncs:
                - X509_get0_pubkey
                - EVP_PKEY_get1_RSA
        - Branch String:   'libfreerdp/crypto/certificate.c:1720,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1721,3'
              BranchSideFuncs:
                - EVP_PKEY_get1_RSA
            - BranchSide:      'libfreerdp/crypto/certificate.c:1723,27'
              BranchSideFuncs:
                - EVP_PKEY_get1_RSA
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1714,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1716,7'
          Dst:             freerdp_certificate_is_rsa
        - Src:             'libfreerdp/crypto/certificate.c:1719,21'
          Dst:             X509_get0_pubkey
        - Src:             'libfreerdp/crypto/certificate.c:1723,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: 1774
      functionLinenumberEnd: 1829
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - cert
        - what
        - psize
      BBCount:         44
      ICount:          201
      EdgeCount:       47
      CyclomaticComplexity: 5
      functionsReached:
        - BN_bn2bin
        - BN_num_bits
        - RSA_free
        - RSA_get0_key
        - calloc
        - freerdp_certificate_get_RSA
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:1775,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1775,2'
              BranchSideFuncs:
                - winpr_int_assert
                - freerdp_certificate_get_RSA
                - RSA_get0_key
                - RSA_free
                - BN_num_bits
                - BN_num_bits
                - winpr_int_assert
                - BN_num_bits
                - BN_num_bits
                - winpr_int_assert
                - BN_num_bits
                - BN_num_bits
                - calloc
                - BN_bn2bin
                - BN_num_bits
                - RSA_get0_key
                - RSA_free
            - BranchSide:      'libfreerdp/crypto/certificate.c:1775,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/certificate.c:1776,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1776,2'
              BranchSideFuncs:
                - freerdp_certificate_get_RSA
                - RSA_get0_key
                - RSA_free
                - BN_num_bits
                - BN_num_bits
                - winpr_int_assert
                - BN_num_bits
                - BN_num_bits
                - winpr_int_assert
                - BN_num_bits
                - BN_num_bits
                - calloc
                - BN_bn2bin
                - BN_num_bits
                - RSA_get0_key
                - RSA_free
            - BranchSide:      'libfreerdp/crypto/certificate.c:1776,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/certificate.c:1783,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1786,17'
              BranchSideFuncs:
                - RSA_get0_key
                - RSA_free
                - BN_num_bits
                - BN_num_bits
                - winpr_int_assert
                - BN_num_bits
                - BN_num_bits
                - winpr_int_assert
                - BN_num_bits
                - BN_num_bits
                - calloc
                - BN_bn2bin
                - BN_num_bits
            - BranchSide:      'libfreerdp/crypto/certificate.c:1789,17'
              BranchSideFuncs:
                - RSA_get0_key
                - RSA_free
                - BN_num_bits
                - BN_num_bits
                - winpr_int_assert
                - BN_num_bits
                - BN_num_bits
                - winpr_int_assert
                - BN_num_bits
                - BN_num_bits
                - calloc
                - BN_bn2bin
                - BN_num_bits
            - BranchSide:      'libfreerdp/crypto/certificate.c:1792,13'
              BranchSideFuncs:
                - RSA_free
        - Branch String:   'libfreerdp/crypto/certificate.c:1817,24'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1817,24'
              BranchSideFuncs:
                - BN_num_bits
                - BN_num_bits
                - winpr_int_assert
                - BN_num_bits
                - BN_num_bits
                - calloc
                - BN_bn2bin
                - BN_num_bits
            - BranchSide:      'libfreerdp/crypto/certificate.c:1817,24'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/certificate.c:1817,24'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1817,24'
              BranchSideFuncs:
                - BN_num_bits
                - BN_num_bits
                - winpr_int_assert
                - BN_num_bits
                - BN_num_bits
                - calloc
                - BN_bn2bin
            - BranchSide:      'libfreerdp/crypto/certificate.c:1817,24'
              BranchSideFuncs:
                - BN_num_bits
                - winpr_int_assert
                - BN_num_bits
                - BN_num_bits
                - calloc
                - BN_bn2bin
        - Branch String:   'libfreerdp/crypto/certificate.c:1817,24'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1817,24'
              BranchSideFuncs:
                - BN_num_bits
                - calloc
                - BN_bn2bin
            - BranchSide:      'libfreerdp/crypto/certificate.c:1817,24'
              BranchSideFuncs:
                - BN_num_bits
                - winpr_int_assert
                - BN_num_bits
                - BN_num_bits
                - calloc
                - BN_bn2bin
        - Branch String:   'libfreerdp/crypto/certificate.c:1817,24'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1817,24'
              BranchSideFuncs:
                - BN_num_bits
                - winpr_int_assert
                - BN_num_bits
                - calloc
                - BN_bn2bin
            - BranchSide:      'libfreerdp/crypto/certificate.c:1817,24'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/certificate.c:1817,24'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1817,24'
              BranchSideFuncs:
                - BN_num_bits
                - calloc
                - BN_bn2bin
            - BranchSide:      'libfreerdp/crypto/certificate.c:1817,24'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/certificate.c:1819,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1820,3'
              BranchSideFuncs:
                - BN_bn2bin
            - BranchSide:      'libfreerdp/crypto/certificate.c:1821,12'
              BranchSideFuncs:
                - BN_bn2bin
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1775,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1776,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1782,13'
          Dst:             freerdp_certificate_get_RSA
        - Src:             'libfreerdp/crypto/certificate.c:1786,4'
          Dst:             RSA_get0_key
        - Src:             'libfreerdp/crypto/certificate.c:1789,4'
          Dst:             RSA_get0_key
        - Src:             'libfreerdp/crypto/certificate.c:1792,4'
          Dst:             RSA_free
        - Src:             'libfreerdp/crypto/certificate.c:1795,2'
          Dst:             RSA_free
        - Src:             'libfreerdp/crypto/certificate.c:1817,24'
          Dst:             BN_num_bits
        - Src:             'libfreerdp/crypto/certificate.c:1817,24'
          Dst:             BN_num_bits
        - Src:             'libfreerdp/crypto/certificate.c:1817,24'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1817,24'
          Dst:             BN_num_bits
        - Src:             'libfreerdp/crypto/certificate.c:1817,24'
          Dst:             BN_num_bits
        - Src:             'libfreerdp/crypto/certificate.c:1817,24'
          Dst:             BN_num_bits
        - Src:             'libfreerdp/crypto/certificate.c:1817,24'
          Dst:             BN_num_bits
        - Src:             'libfreerdp/crypto/certificate.c:1817,24'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1817,24'
          Dst:             BN_num_bits
        - Src:             'libfreerdp/crypto/certificate.c:1818,13'
          Dst:             calloc
        - Src:             'libfreerdp/crypto/certificate.c:1821,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:    10
      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: 1762
      functionLinenumberEnd: 1770
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - cert
      BBCount:         11
      ICount:          55
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
        - freerdp_certificate_get_info
        - freerdp_certificate_is_rsa
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:1764,40'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1764,44'
              BranchSideFuncs:
                - WLog_Print_dbg_tag
            - BranchSide:      'libfreerdp/crypto/certificate.c:1766,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag
        - Branch String:   'libfreerdp/crypto/certificate.c:1764,49'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1764,53'
              BranchSideFuncs:
                - WLog_Print_dbg_tag
            - BranchSide:      'libfreerdp/crypto/certificate.c:1766,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag
        - Branch String:   'libfreerdp/crypto/certificate.c:1764,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1766,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag
            - BranchSide:      'libfreerdp/crypto/certificate.c:1769,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1763,28'
          Dst:             freerdp_certificate_get_info
        - Src:             'libfreerdp/crypto/certificate.c:1764,7'
          Dst:             freerdp_certificate_is_rsa
        - Src:             'libfreerdp/crypto/certificate.c:1766,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    freerdp_certificate_get_info
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1359
      functionLinenumberEnd: 1364
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - cert
      BBCount:         12
      ICount:          45
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - freerdp_certificate_is_rsa
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:1360,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1360,2'
              BranchSideFuncs:
                - freerdp_certificate_is_rsa
            - BranchSide:      'libfreerdp/crypto/certificate.c:1360,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/certificate.c:1361,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1362,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/certificate.c:1363,10'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1360,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1361,7'
          Dst:             freerdp_certificate_is_rsa
    - functionName:    freerdp_certificate_get_der
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1728
      functionLinenumberEnd: 1753
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - cert
        - pLength
      BBCount:         43
      ICount:          182
      EdgeCount:       51
      CyclomaticComplexity: 10
      functionsReached:
        - calloc
        - i2d_X509
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:1729,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1729,2'
              BranchSideFuncs:
                - i2d_X509
                - winpr_int_assert
                - winpr_int_assert
                - calloc
                - i2d_X509
                - free
            - BranchSide:      'libfreerdp/crypto/certificate.c:1729,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/certificate.c:1731,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1732,4'
              BranchSideFuncs:
                - i2d_X509
                - winpr_int_assert
                - winpr_int_assert
                - calloc
                - i2d_X509
                - free
            - BranchSide:      'libfreerdp/crypto/certificate.c:1734,26'
              BranchSideFuncs:
                - i2d_X509
                - winpr_int_assert
                - winpr_int_assert
                - calloc
                - i2d_X509
                - free
        - Branch String:   'libfreerdp/crypto/certificate.c:1735,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1736,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/certificate.c:1738,21'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - calloc
                - i2d_X509
                - free
        - Branch String:   'libfreerdp/crypto/certificate.c:1738,21'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1738,21'
              BranchSideFuncs:
                - winpr_int_assert
                - calloc
                - i2d_X509
                - free
            - BranchSide:      'libfreerdp/crypto/certificate.c:1738,21'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/certificate.c:1738,21'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1738,21'
              BranchSideFuncs:
                - winpr_int_assert
                - calloc
                - i2d_X509
                - free
            - BranchSide:      'libfreerdp/crypto/certificate.c:1738,21'
              BranchSideFuncs:
                - winpr_int_assert
                - calloc
                - i2d_X509
                - free
        - Branch String:   'libfreerdp/crypto/certificate.c:1738,21'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1738,21'
              BranchSideFuncs:
                - calloc
                - i2d_X509
                - free
            - BranchSide:      'libfreerdp/crypto/certificate.c:1738,21'
              BranchSideFuncs:
                - winpr_int_assert
                - calloc
                - i2d_X509
                - free
        - Branch String:   'libfreerdp/crypto/certificate.c:1738,21'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1738,21'
              BranchSideFuncs:
                - winpr_int_assert
                - calloc
                - i2d_X509
                - free
            - BranchSide:      'libfreerdp/crypto/certificate.c:1738,21'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/certificate.c:1738,21'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1738,21'
              BranchSideFuncs:
                - calloc
                - i2d_X509
                - free
            - BranchSide:      'libfreerdp/crypto/certificate.c:1738,21'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/certificate.c:1739,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1740,3'
              BranchSideFuncs:
                - i2d_X509
                - free
            - BranchSide:      'libfreerdp/crypto/certificate.c:1741,18'
              BranchSideFuncs:
                - i2d_X509
                - free
        - Branch String:   'libfreerdp/crypto/certificate.c:1744,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1746,8'
              BranchSideFuncs:
                - free
            - BranchSide:      'libfreerdp/crypto/certificate.c:1750,6'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/certificate.c:1750,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1751,22'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/certificate.c:1752,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1729,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1734,17'
          Dst:             i2d_X509
        - Src:             'libfreerdp/crypto/certificate.c:1738,21'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1738,21'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1738,14'
          Dst:             calloc
        - Src:             'libfreerdp/crypto/certificate.c:1743,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: 1672
      functionLinenumberEnd: 1709
      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:         63
      ICount:          252
      EdgeCount:       72
      CyclomaticComplexity: 11
      functionsReached:
        - EVP_PKEY_CTX_free
        - EVP_PKEY_CTX_new
        - EVP_PKEY_encrypt
        - EVP_PKEY_encrypt_init
        - EVP_PKEY_size
        - RSA_pkey_ctx_ctrl
        - WLog_Print_dbg_tag
        - X509_get0_pubkey
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:1673,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1673,2'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - X509_get0_pubkey
                - EVP_PKEY_CTX_new
                - EVP_PKEY_size
                - EVP_PKEY_size
                - winpr_int_assert
                - EVP_PKEY_size
                - EVP_PKEY_size
                - winpr_int_assert
                - EVP_PKEY_size
                - EVP_PKEY_size
                - malloc
                - EVP_PKEY_encrypt_init
                - RSA_pkey_ctx_ctrl
                - EVP_PKEY_encrypt
                - EVP_PKEY_CTX_free
                - free
                - WLog_Print_dbg_tag
                - EVP_PKEY_size
            - BranchSide:      'libfreerdp/crypto/certificate.c:1673,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/certificate.c:1674,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1674,2'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - X509_get0_pubkey
                - EVP_PKEY_CTX_new
                - EVP_PKEY_size
                - EVP_PKEY_size
                - winpr_int_assert
                - EVP_PKEY_size
                - EVP_PKEY_size
                - winpr_int_assert
                - EVP_PKEY_size
                - EVP_PKEY_size
                - malloc
                - EVP_PKEY_encrypt_init
                - RSA_pkey_ctx_ctrl
                - EVP_PKEY_encrypt
                - EVP_PKEY_CTX_free
                - free
                - WLog_Print_dbg_tag
                - EVP_PKEY_size
            - BranchSide:      'libfreerdp/crypto/certificate.c:1674,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/certificate.c:1675,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1675,2'
              BranchSideFuncs:
                - winpr_int_assert
                - X509_get0_pubkey
                - EVP_PKEY_CTX_new
                - EVP_PKEY_size
                - EVP_PKEY_size
                - winpr_int_assert
                - EVP_PKEY_size
                - EVP_PKEY_size
                - winpr_int_assert
                - EVP_PKEY_size
                - EVP_PKEY_size
                - malloc
                - EVP_PKEY_encrypt_init
                - RSA_pkey_ctx_ctrl
                - EVP_PKEY_encrypt
                - EVP_PKEY_CTX_free
                - free
                - WLog_Print_dbg_tag
                - EVP_PKEY_size
            - BranchSide:      'libfreerdp/crypto/certificate.c:1675,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/certificate.c:1676,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1676,2'
              BranchSideFuncs:
                - X509_get0_pubkey
                - EVP_PKEY_CTX_new
                - EVP_PKEY_size
                - EVP_PKEY_size
                - winpr_int_assert
                - EVP_PKEY_size
                - EVP_PKEY_size
                - winpr_int_assert
                - EVP_PKEY_size
                - EVP_PKEY_size
                - malloc
                - EVP_PKEY_encrypt_init
                - RSA_pkey_ctx_ctrl
                - EVP_PKEY_encrypt
                - EVP_PKEY_CTX_free
                - free
                - WLog_Print_dbg_tag
                - EVP_PKEY_size
            - BranchSide:      'libfreerdp/crypto/certificate.c:1676,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/certificate.c:1681,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1682,3'
              BranchSideFuncs:
                - EVP_PKEY_CTX_new
                - EVP_PKEY_size
                - EVP_PKEY_size
                - winpr_int_assert
                - EVP_PKEY_size
                - EVP_PKEY_size
                - winpr_int_assert
                - EVP_PKEY_size
                - EVP_PKEY_size
                - malloc
                - EVP_PKEY_encrypt_init
                - RSA_pkey_ctx_ctrl
                - EVP_PKEY_encrypt
                - EVP_PKEY_CTX_free
                - free
                - WLog_Print_dbg_tag
                - EVP_PKEY_size
            - BranchSide:      'libfreerdp/crypto/certificate.c:1684,39'
              BranchSideFuncs:
                - EVP_PKEY_CTX_new
                - EVP_PKEY_size
                - EVP_PKEY_size
                - winpr_int_assert
                - EVP_PKEY_size
                - EVP_PKEY_size
                - winpr_int_assert
                - EVP_PKEY_size
                - EVP_PKEY_size
                - malloc
                - EVP_PKEY_encrypt_init
                - RSA_pkey_ctx_ctrl
                - EVP_PKEY_encrypt
                - EVP_PKEY_CTX_free
                - free
                - WLog_Print_dbg_tag
                - EVP_PKEY_size
        - Branch String:   'libfreerdp/crypto/certificate.c:1685,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1686,3'
              BranchSideFuncs:
                - EVP_PKEY_size
                - EVP_PKEY_size
                - winpr_int_assert
                - EVP_PKEY_size
                - EVP_PKEY_size
                - winpr_int_assert
                - EVP_PKEY_size
                - EVP_PKEY_size
                - malloc
                - EVP_PKEY_encrypt_init
                - RSA_pkey_ctx_ctrl
                - EVP_PKEY_encrypt
                - EVP_PKEY_CTX_free
                - free
                - WLog_Print_dbg_tag
                - EVP_PKEY_size
            - BranchSide:      'libfreerdp/crypto/certificate.c:1688,22'
              BranchSideFuncs:
                - EVP_PKEY_size
                - EVP_PKEY_size
                - winpr_int_assert
                - EVP_PKEY_size
                - EVP_PKEY_size
                - winpr_int_assert
                - EVP_PKEY_size
                - EVP_PKEY_size
                - malloc
                - EVP_PKEY_encrypt_init
                - RSA_pkey_ctx_ctrl
                - EVP_PKEY_encrypt
                - EVP_PKEY_CTX_free
                - free
                - WLog_Print_dbg_tag
                - EVP_PKEY_size
        - Branch String:   'libfreerdp/crypto/certificate.c:1688,22'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1688,22'
              BranchSideFuncs:
                - EVP_PKEY_size
                - EVP_PKEY_size
                - winpr_int_assert
                - EVP_PKEY_size
                - EVP_PKEY_size
                - malloc
                - EVP_PKEY_encrypt_init
                - RSA_pkey_ctx_ctrl
                - EVP_PKEY_encrypt
                - EVP_PKEY_CTX_free
                - free
                - WLog_Print_dbg_tag
                - EVP_PKEY_size
            - BranchSide:      'libfreerdp/crypto/certificate.c:1688,22'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/certificate.c:1688,22'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1688,22'
              BranchSideFuncs:
                - EVP_PKEY_size
                - EVP_PKEY_size
                - winpr_int_assert
                - EVP_PKEY_size
                - EVP_PKEY_size
                - malloc
                - EVP_PKEY_encrypt_init
                - RSA_pkey_ctx_ctrl
                - EVP_PKEY_encrypt
                - EVP_PKEY_CTX_free
                - free
                - WLog_Print_dbg_tag
            - BranchSide:      'libfreerdp/crypto/certificate.c:1688,22'
              BranchSideFuncs:
                - EVP_PKEY_size
                - winpr_int_assert
                - EVP_PKEY_size
                - EVP_PKEY_size
                - malloc
                - EVP_PKEY_encrypt_init
                - RSA_pkey_ctx_ctrl
                - EVP_PKEY_encrypt
                - EVP_PKEY_CTX_free
                - free
                - WLog_Print_dbg_tag
        - Branch String:   'libfreerdp/crypto/certificate.c:1688,22'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1688,22'
              BranchSideFuncs:
                - EVP_PKEY_size
                - malloc
                - EVP_PKEY_encrypt_init
                - RSA_pkey_ctx_ctrl
                - EVP_PKEY_encrypt
                - EVP_PKEY_CTX_free
                - free
                - WLog_Print_dbg_tag
            - BranchSide:      'libfreerdp/crypto/certificate.c:1688,22'
              BranchSideFuncs:
                - EVP_PKEY_size
                - winpr_int_assert
                - EVP_PKEY_size
                - EVP_PKEY_size
                - malloc
                - EVP_PKEY_encrypt_init
                - RSA_pkey_ctx_ctrl
                - EVP_PKEY_encrypt
                - EVP_PKEY_CTX_free
                - free
                - WLog_Print_dbg_tag
        - Branch String:   'libfreerdp/crypto/certificate.c:1688,22'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1688,22'
              BranchSideFuncs:
                - EVP_PKEY_size
                - winpr_int_assert
                - EVP_PKEY_size
                - malloc
                - EVP_PKEY_encrypt_init
                - RSA_pkey_ctx_ctrl
                - EVP_PKEY_encrypt
                - EVP_PKEY_CTX_free
                - free
                - WLog_Print_dbg_tag
            - BranchSide:      'libfreerdp/crypto/certificate.c:1688,22'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/certificate.c:1688,22'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1688,22'
              BranchSideFuncs:
                - EVP_PKEY_size
                - malloc
                - EVP_PKEY_encrypt_init
                - RSA_pkey_ctx_ctrl
                - EVP_PKEY_encrypt
                - EVP_PKEY_CTX_free
                - free
                - WLog_Print_dbg_tag
            - BranchSide:      'libfreerdp/crypto/certificate.c:1688,22'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/certificate.c:1690,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1691,3'
              BranchSideFuncs:
                - EVP_PKEY_CTX_free
                - free
            - BranchSide:      'libfreerdp/crypto/certificate.c:1692,15'
              BranchSideFuncs:
                - EVP_PKEY_encrypt_init
                - RSA_pkey_ctx_ctrl
                - EVP_PKEY_encrypt
                - EVP_PKEY_CTX_free
                - free
                - WLog_Print_dbg_tag
        - Branch String:   'libfreerdp/crypto/certificate.c:1694,38'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1695,6'
              BranchSideFuncs:
                - WLog_Print_dbg_tag
                - EVP_PKEY_CTX_free
                - free
            - BranchSide:      'libfreerdp/crypto/certificate.c:1698,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag
                - EVP_PKEY_CTX_free
                - free
        - Branch String:   'libfreerdp/crypto/certificate.c:1695,64'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1696,23'
              BranchSideFuncs:
                - WLog_Print_dbg_tag
                - EVP_PKEY_CTX_free
                - free
            - BranchSide:      'libfreerdp/crypto/certificate.c:1698,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag
                - EVP_PKEY_CTX_free
                - free
        - Branch String:   'libfreerdp/crypto/certificate.c:1694,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1698,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag
                - EVP_PKEY_CTX_free
                - free
            - BranchSide:      'libfreerdp/crypto/certificate.c:1702,13'
              BranchSideFuncs:
                - EVP_PKEY_CTX_free
                - free
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1673,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1674,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1675,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1676,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1680,19'
          Dst:             X509_get0_pubkey
        - Src:             'libfreerdp/crypto/certificate.c:1684,22'
          Dst:             EVP_PKEY_CTX_new
        - Src:             'libfreerdp/crypto/certificate.c:1688,22'
          Dst:             EVP_PKEY_size
        - Src:             'libfreerdp/crypto/certificate.c:1688,22'
          Dst:             EVP_PKEY_size
        - Src:             'libfreerdp/crypto/certificate.c:1688,22'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1688,22'
          Dst:             EVP_PKEY_size
        - Src:             'libfreerdp/crypto/certificate.c:1688,22'
          Dst:             EVP_PKEY_size
        - Src:             'libfreerdp/crypto/certificate.c:1688,22'
          Dst:             EVP_PKEY_size
        - Src:             'libfreerdp/crypto/certificate.c:1688,22'
          Dst:             EVP_PKEY_size
        - Src:             'libfreerdp/crypto/certificate.c:1688,22'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1688,22'
          Dst:             EVP_PKEY_size
        - Src:             'libfreerdp/crypto/certificate.c:1694,6'
          Dst:             EVP_PKEY_encrypt_init
        - Src:             'libfreerdp/crypto/certificate.c:1695,6'
          Dst:             RSA_pkey_ctx_ctrl
        - Src:             'libfreerdp/crypto/certificate.c:1696,6'
          Dst:             EVP_PKEY_encrypt
        - Src:             'libfreerdp/crypto/certificate.c:1698,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/certificate.c:1706,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:    7
      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: 1665
      functionLinenumberEnd: 1667
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - cert
      BBCount:         9
      ICount:          32
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:1666,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1666,2'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/certificate.c:1666,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1666,2'
          Dst:             winpr_int_assert
    - functionName:    freerdp_certificate_get_hash
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1659
      functionLinenumberEnd: 1661
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - cert
        - hash
        - plength
      BBCount:         9
      ICount:          41
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
        - x509_utils_get_hash
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:1660,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1660,2'
              BranchSideFuncs:
                - x509_utils_get_hash
            - BranchSide:      'libfreerdp/crypto/certificate.c:1660,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1660,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1661,16'
          Dst:             x509_utils_get_hash
    - functionName:    freerdp_certificate_free_dns_names
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1654
      functionLinenumberEnd: 1656
      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:1655,2'
          Dst:             x509_utils_dns_names_free
    - functionName:    freerdp_certificate_get_signature_alg
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1648
      functionLinenumberEnd: 1650
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - cert
      BBCount:         9
      ICount:          33
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
        - x509_utils_get_signature_alg
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:1649,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1649,2'
              BranchSideFuncs:
                - x509_utils_get_signature_alg
            - BranchSide:      'libfreerdp/crypto/certificate.c:1649,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1649,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1650,9'
          Dst:             x509_utils_get_signature_alg
    - functionName:    freerdp_certificate_get_common_name
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1642
      functionLinenumberEnd: 1644
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - cert
        - plength
      BBCount:         9
      ICount:          37
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
        - x509_utils_get_common_name
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:1643,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1643,2'
              BranchSideFuncs:
                - x509_utils_get_common_name
            - BranchSide:      'libfreerdp/crypto/certificate.c:1643,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1643,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1644,9'
          Dst:             x509_utils_get_common_name
    - functionName:    freerdp_certificate_get_dns_names
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1636
      functionLinenumberEnd: 1638
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - cert
        - pcount
        - pplengths
      BBCount:         9
      ICount:          41
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
        - x509_utils_get_dns_names
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:1637,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1637,2'
              BranchSideFuncs:
                - x509_utils_get_dns_names
            - BranchSide:      'libfreerdp/crypto/certificate.c:1637,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1637,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1638,9'
          Dst:             x509_utils_get_dns_names
    - functionName:    freerdp_certificate_verify
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1629
      functionLinenumberEnd: 1631
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - cert
        - certificate_store_path
      BBCount:         9
      ICount:          40
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
        - x509_utils_verify
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:1630,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1630,2'
              BranchSideFuncs:
                - x509_utils_verify
            - BranchSide:      'libfreerdp/crypto/certificate.c:1630,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1630,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1631,9'
          Dst:             x509_utils_verify
    - functionName:    freerdp_certificate_get_public_key
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1585
      functionLinenumberEnd: 1625
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - cert
        - PublicKey
        - PublicKeyLength
      BBCount:         42
      ICount:          191
      EdgeCount:       50
      CyclomaticComplexity: 10
      functionsReached:
        - WLog_Print_dbg_tag
        - X509_get0_pubkey
        - calloc
        - i2d_PublicKey
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:1592,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1592,2'
              BranchSideFuncs:
                - X509_get0_pubkey
                - WLog_Print_dbg_tag
                - free
                - i2d_PublicKey
                - winpr_int_assert
                - winpr_int_assert
                - calloc
                - i2d_PublicKey
                - WLog_Print_dbg_tag
            - BranchSide:      'libfreerdp/crypto/certificate.c:1592,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/certificate.c:1596,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1598,3'
              BranchSideFuncs:
                - i2d_PublicKey
                - winpr_int_assert
                - winpr_int_assert
                - calloc
                - free
                - i2d_PublicKey
                - WLog_Print_dbg_tag
            - BranchSide:      'libfreerdp/crypto/certificate.c:1602,25'
              BranchSideFuncs:
                - i2d_PublicKey
                - winpr_int_assert
                - winpr_int_assert
                - calloc
                - free
                - i2d_PublicKey
                - WLog_Print_dbg_tag
        - Branch String:   'libfreerdp/crypto/certificate.c:1604,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1606,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag
                - free
            - BranchSide:      'libfreerdp/crypto/certificate.c:1610,42'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - calloc
                - free
                - i2d_PublicKey
        - Branch String:   'libfreerdp/crypto/certificate.c:1610,42'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1610,42'
              BranchSideFuncs:
                - winpr_int_assert
                - calloc
                - free
                - i2d_PublicKey
            - BranchSide:      'libfreerdp/crypto/certificate.c:1610,42'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/certificate.c:1610,42'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1610,42'
              BranchSideFuncs:
                - winpr_int_assert
                - calloc
                - free
                - i2d_PublicKey
            - BranchSide:      'libfreerdp/crypto/certificate.c:1610,42'
              BranchSideFuncs:
                - winpr_int_assert
                - calloc
                - free
                - i2d_PublicKey
        - Branch String:   'libfreerdp/crypto/certificate.c:1610,42'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1610,42'
              BranchSideFuncs:
                - calloc
                - free
                - i2d_PublicKey
            - BranchSide:      'libfreerdp/crypto/certificate.c:1610,42'
              BranchSideFuncs:
                - winpr_int_assert
                - calloc
                - free
                - i2d_PublicKey
        - Branch String:   'libfreerdp/crypto/certificate.c:1610,42'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1610,42'
              BranchSideFuncs:
                - winpr_int_assert
                - calloc
                - free
                - i2d_PublicKey
            - BranchSide:      'libfreerdp/crypto/certificate.c:1610,42'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/certificate.c:1610,42'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1610,42'
              BranchSideFuncs:
                - calloc
                - free
                - i2d_PublicKey
            - BranchSide:      'libfreerdp/crypto/certificate.c:1610,42'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/certificate.c:1612,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1613,3'
              BranchSideFuncs:
                - i2d_PublicKey
                - free
            - BranchSide:      'libfreerdp/crypto/certificate.c:1615,36'
              BranchSideFuncs:
                - i2d_PublicKey
                - free
        - Branch String:   'libfreerdp/crypto/certificate.c:1616,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1617,3'
              BranchSideFuncs:
                - free
            - BranchSide:      'libfreerdp/crypto/certificate.c:1618,28'
              BranchSideFuncs:
                - free
        - Branch String:   'libfreerdp/crypto/certificate.c:1622,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1622,6'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/certificate.c:1623,8'
              BranchSideFuncs:
                - free
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1592,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1594,9'
          Dst:             X509_get0_pubkey
        - Src:             'libfreerdp/crypto/certificate.c:1598,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/certificate.c:1602,11'
          Dst:             i2d_PublicKey
        - Src:             'libfreerdp/crypto/certificate.c:1606,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/certificate.c:1610,42'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1610,42'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1610,35'
          Dst:             calloc
        - Src:             'libfreerdp/crypto/certificate.c:1615,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: 1578
      functionLinenumberEnd: 1580
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - cert
        - nid
      BBCount:         9
      ICount:          37
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
        - x509_utils_check_eku
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:1579,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1579,2'
              BranchSideFuncs:
                - x509_utils_check_eku
            - BranchSide:      'libfreerdp/crypto/certificate.c:1579,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1579,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1580,9'
          Dst:             x509_utils_check_eku
    - functionName:    freerdp_certificate_get_validity
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1572
      functionLinenumberEnd: 1574
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - cert
        - startDate
      BBCount:         9
      ICount:          37
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
        - x509_utils_get_date
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:1573,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1573,2'
              BranchSideFuncs:
                - x509_utils_get_date
            - BranchSide:      'libfreerdp/crypto/certificate.c:1573,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1573,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1574,9'
          Dst:             x509_utils_get_date
    - functionName:    freerdp_certificate_get_email
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1566
      functionLinenumberEnd: 1568
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - cert
      BBCount:         9
      ICount:          33
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
        - x509_utils_get_email
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:1567,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1567,2'
              BranchSideFuncs:
                - x509_utils_get_email
            - BranchSide:      'libfreerdp/crypto/certificate.c:1567,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1567,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1568,9'
          Dst:             x509_utils_get_email
    - functionName:    freerdp_certificate_get_upn
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1560
      functionLinenumberEnd: 1562
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - cert
      BBCount:         9
      ICount:          33
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
        - x509_utils_get_upn
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:1561,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1561,2'
              BranchSideFuncs:
                - x509_utils_get_upn
            - BranchSide:      'libfreerdp/crypto/certificate.c:1561,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1561,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1562,9'
          Dst:             x509_utils_get_upn
    - functionName:    freerdp_certificate_get_issuer
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1554
      functionLinenumberEnd: 1556
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - cert
      BBCount:         9
      ICount:          33
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
        - x509_utils_get_issuer
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:1555,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1555,2'
              BranchSideFuncs:
                - x509_utils_get_issuer
            - BranchSide:      'libfreerdp/crypto/certificate.c:1555,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1555,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1556,9'
          Dst:             x509_utils_get_issuer
    - functionName:    freerdp_certificate_get_subject
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1548
      functionLinenumberEnd: 1550
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - cert
      BBCount:         9
      ICount:          33
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
        - x509_utils_get_subject
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:1549,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1549,2'
              BranchSideFuncs:
                - x509_utils_get_subject
            - BranchSide:      'libfreerdp/crypto/certificate.c:1549,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1549,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1550,9'
          Dst:             x509_utils_get_subject
    - functionName:    bio_read_pem
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1434
      functionLinenumberEnd: 1488
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - bio
        - ppem
        - plength
      BBCount:         42
      ICount:          210
      EdgeCount:       52
      CyclomaticComplexity: 12
      functionsReached:
        - BIO_read
        - ERR_clear_error
        - WLog_Print_dbg_tag
        - realloc
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:1437,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1437,2'
              BranchSideFuncs:
                - winpr_int_assert
                - free
                - realloc
                - ERR_clear_error
                - BIO_read
                - WLog_Print_dbg_tag
            - BranchSide:      'libfreerdp/crypto/certificate.c:1437,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/certificate.c:1438,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1438,2'
              BranchSideFuncs:
                - free
                - realloc
                - ERR_clear_error
                - BIO_read
                - WLog_Print_dbg_tag
            - BranchSide:      'libfreerdp/crypto/certificate.c:1438,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/certificate.c:1446,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1447,4'
              BranchSideFuncs:
                - free
                - realloc
                - ERR_clear_error
                - BIO_read
                - WLog_Print_dbg_tag
            - BranchSide:      'libfreerdp/crypto/certificate.c:1449,2'
              BranchSideFuncs:
                - free
                - realloc
                - ERR_clear_error
                - BIO_read
                - WLog_Print_dbg_tag
        - Branch String:   'libfreerdp/crypto/certificate.c:1449,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1451,23'
              BranchSideFuncs:
                - realloc
                - free
                - ERR_clear_error
                - BIO_read
                - WLog_Print_dbg_tag
            - BranchSide:      'libfreerdp/crypto/certificate.c:1474,6'
              BranchSideFuncs:
                - free
        - Branch String:   'libfreerdp/crypto/certificate.c:1452,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1453,4'
              BranchSideFuncs:
                - ERR_clear_error
                - BIO_read
                - free
                - realloc
                - WLog_Print_dbg_tag
            - BranchSide:      'libfreerdp/crypto/certificate.c:1454,9'
              BranchSideFuncs:
                - ERR_clear_error
                - BIO_read
                - free
                - realloc
                - WLog_Print_dbg_tag
        - Branch String:   'libfreerdp/crypto/certificate.c:1459,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1461,4'
              BranchSideFuncs:
                - WLog_Print_dbg_tag
                - free
            - BranchSide:      'libfreerdp/crypto/certificate.c:1465,7'
              BranchSideFuncs:
                - free
                - realloc
                - ERR_clear_error
                - BIO_read
                - WLog_Print_dbg_tag
        - Branch String:   'libfreerdp/crypto/certificate.c:1465,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1466,4'
              BranchSideFuncs:
                - free
            - BranchSide:      'libfreerdp/crypto/certificate.c:1468,21'
              BranchSideFuncs:
                - free
                - realloc
                - ERR_clear_error
                - BIO_read
                - WLog_Print_dbg_tag
        - Branch String:   'libfreerdp/crypto/certificate.c:1469,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1470,4'
              BranchSideFuncs:
                - free
            - BranchSide:      'libfreerdp/crypto/certificate.c:1471,10'
              BranchSideFuncs:
                - free
                - realloc
                - ERR_clear_error
                - BIO_read
                - WLog_Print_dbg_tag
        - Branch String:   'libfreerdp/crypto/certificate.c:1474,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1476,7'
              BranchSideFuncs:
                - free
            - BranchSide:      'libfreerdp/crypto/certificate.c:1480,10'
              BranchSideFuncs:
                - free
        - Branch String:   'libfreerdp/crypto/certificate.c:1476,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1477,4'
              BranchSideFuncs:
                - free
            - BranchSide:      'libfreerdp/crypto/certificate.c:1478,3'
              BranchSideFuncs:
                - free
        - Branch String:   'libfreerdp/crypto/certificate.c:1481,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1482,14'
              BranchSideFuncs:
                - free
            - BranchSide:      'libfreerdp/crypto/certificate.c:1483,5'
              BranchSideFuncs:
                - free
        - Branch String:   'libfreerdp/crypto/certificate.c:1485,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1485,6'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/certificate.c:1486,8'
              BranchSideFuncs:
                - free
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1437,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1438,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1451,15'
          Dst:             realloc
        - Src:             'libfreerdp/crypto/certificate.c:1456,3'
          Dst:             ERR_clear_error
        - Src:             'libfreerdp/crypto/certificate.c:1458,22'
          Dst:             BIO_read
        - Src:             'libfreerdp/crypto/certificate.c:1461,4'
          Dst:             WLog_Print_dbg_tag
    - 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:    3
      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:    3
      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: 1498
      functionLinenumberEnd: 1545
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - cert
        - pLength
        - withCertChain
      BBCount:         28
      ICount:          158
      EdgeCount:       35
      CyclomaticComplexity: 9
      functionsReached:
        - BIO_free_all
        - BIO_new
        - BIO_s_mem
        - PEM_write_bio_X509
        - WLog_Print_dbg_tag
        - bio_read_pem
        - sk_X509_num
        - sk_X509_value
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:1499,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1499,2'
              BranchSideFuncs:
                - BIO_s_mem
                - BIO_new
                - WLog_Print_dbg_tag
                - PEM_write_bio_X509
                - bio_read_pem
                - BIO_free_all
                - sk_X509_num
                - sk_X509_value
                - PEM_write_bio_X509
                - WLog_Print_dbg_tag
                - WLog_Print_dbg_tag
            - BranchSide:      'libfreerdp/crypto/certificate.c:1499,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/certificate.c:1501,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1502,3'
              BranchSideFuncs:
                - BIO_s_mem
                - BIO_new
                - WLog_Print_dbg_tag
                - PEM_write_bio_X509
                - bio_read_pem
                - BIO_free_all
                - sk_X509_num
                - sk_X509_value
                - PEM_write_bio_X509
                - WLog_Print_dbg_tag
                - WLog_Print_dbg_tag
            - BranchSide:      'libfreerdp/crypto/certificate.c:1508,21'
              BranchSideFuncs:
                - BIO_s_mem
                - BIO_new
                - WLog_Print_dbg_tag
                - PEM_write_bio_X509
                - bio_read_pem
                - BIO_free_all
                - sk_X509_num
                - sk_X509_value
                - PEM_write_bio_X509
                - WLog_Print_dbg_tag
                - WLog_Print_dbg_tag
        - Branch String:   'libfreerdp/crypto/certificate.c:1510,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1512,3'
              BranchSideFuncs:
                - PEM_write_bio_X509
                - bio_read_pem
                - BIO_free_all
                - sk_X509_num
                - sk_X509_value
                - PEM_write_bio_X509
                - WLog_Print_dbg_tag
                - WLog_Print_dbg_tag
            - BranchSide:      'libfreerdp/crypto/certificate.c:1516,8'
              BranchSideFuncs:
                - PEM_write_bio_X509
                - bio_read_pem
                - BIO_free_all
                - sk_X509_num
                - sk_X509_value
                - PEM_write_bio_X509
                - WLog_Print_dbg_tag
                - WLog_Print_dbg_tag
        - Branch String:   'libfreerdp/crypto/certificate.c:1519,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1521,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag
                - BIO_free_all
            - BranchSide:      'libfreerdp/crypto/certificate.c:1525,6'
              BranchSideFuncs:
                - bio_read_pem
                - BIO_free_all
                - sk_X509_num
                - sk_X509_value
                - PEM_write_bio_X509
                - WLog_Print_dbg_tag
        - Branch String:   'libfreerdp/crypto/certificate.c:1525,18'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1525,21'
              BranchSideFuncs:
                - bio_read_pem
                - BIO_free_all
                - sk_X509_num
                - sk_X509_value
                - PEM_write_bio_X509
                - WLog_Print_dbg_tag
            - BranchSide:      'libfreerdp/crypto/certificate.c:1540,21'
              BranchSideFuncs:
                - bio_read_pem
                - BIO_free_all
        - Branch String:   'libfreerdp/crypto/certificate.c:1525,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1527,33'
              BranchSideFuncs:
                - sk_X509_num
                - bio_read_pem
                - BIO_free_all
                - sk_X509_value
                - PEM_write_bio_X509
                - WLog_Print_dbg_tag
            - BranchSide:      'libfreerdp/crypto/certificate.c:1540,21'
              BranchSideFuncs:
                - bio_read_pem
                - BIO_free_all
        - Branch String:   'libfreerdp/crypto/certificate.c:1528,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1530,28'
              BranchSideFuncs:
                - sk_X509_value
                - PEM_write_bio_X509
                - bio_read_pem
                - BIO_free_all
                - WLog_Print_dbg_tag
            - BranchSide:      'libfreerdp/crypto/certificate.c:1538,2'
              BranchSideFuncs:
                - bio_read_pem
                - BIO_free_all
        - Branch String:   'libfreerdp/crypto/certificate.c:1532,8'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1534,5'
              BranchSideFuncs:
                - WLog_Print_dbg_tag
                - BIO_free_all
            - BranchSide:      'libfreerdp/crypto/certificate.c:1537,3'
              BranchSideFuncs:
                - bio_read_pem
                - BIO_free_all
                - sk_X509_value
                - PEM_write_bio_X509
                - WLog_Print_dbg_tag
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1499,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1508,21'
          Dst:             BIO_s_mem
        - Src:             'libfreerdp/crypto/certificate.c:1508,13'
          Dst:             BIO_new
        - Src:             'libfreerdp/crypto/certificate.c:1512,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/certificate.c:1518,21'
          Dst:             PEM_write_bio_X509
        - Src:             'libfreerdp/crypto/certificate.c:1521,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/certificate.c:1527,21'
          Dst:             sk_X509_num
        - Src:             'libfreerdp/crypto/certificate.c:1530,14'
          Dst:             sk_X509_value
        - Src:             'libfreerdp/crypto/certificate.c:1531,19'
          Dst:             PEM_write_bio_X509
        - Src:             'libfreerdp/crypto/certificate.c:1534,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/certificate.c:1540,8'
          Dst:             bio_read_pem
        - Src:             'libfreerdp/crypto/certificate.c:1543,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:    4
      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:    6
      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:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_certificate_get_pem
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1492
      functionLinenumberEnd: 1493
      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:1493,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: 1378
      functionLinenumberEnd: 1431
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - cert
        - hash
        - separator
      BBCount:         30
      ICount:          220
      EdgeCount:       40
      CyclomaticComplexity: 12
      functionsReached:
        - WLog_Print_dbg_tag
        - calloc
        - snprintf
        - x509_utils_get_hash
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:1384,12'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1384,16'
              BranchSideFuncs:
                - WLog_Print_dbg_tag
                - WLog_Print_dbg_tag
                - x509_utils_get_hash
                - calloc
                - free
                - free
                - snprintf
                - free
                - snprintf
                - snprintf
            - BranchSide:      'libfreerdp/crypto/certificate.c:1386,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag
        - Branch String:   'libfreerdp/crypto/certificate.c:1384,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1386,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag
                - x509_utils_get_hash
                - calloc
                - free
                - free
                - snprintf
                - free
                - snprintf
                - snprintf
            - BranchSide:      'libfreerdp/crypto/certificate.c:1389,7'
              BranchSideFuncs:
                - WLog_Print_dbg_tag
                - x509_utils_get_hash
                - calloc
                - free
                - free
                - snprintf
                - free
                - snprintf
                - snprintf
        - Branch String:   'libfreerdp/crypto/certificate.c:1386,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1386,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag
            - BranchSide:      'libfreerdp/crypto/certificate.c:1386,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag
        - Branch String:   'libfreerdp/crypto/certificate.c:1389,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1391,3'
              BranchSideFuncs:
                - x509_utils_get_hash
                - calloc
                - free
                - free
                - snprintf
                - free
                - snprintf
                - snprintf
            - BranchSide:      'libfreerdp/crypto/certificate.c:1394,27'
              BranchSideFuncs:
                - x509_utils_get_hash
                - calloc
                - free
                - free
                - snprintf
                - free
                - snprintf
                - snprintf
        - Branch String:   'libfreerdp/crypto/certificate.c:1395,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1396,3'
              BranchSideFuncs:
                - calloc
                - free
                - free
                - snprintf
                - free
                - snprintf
                - snprintf
            - BranchSide:      'libfreerdp/crypto/certificate.c:1398,6'
              BranchSideFuncs:
                - calloc
                - free
                - free
                - snprintf
                - free
                - snprintf
                - snprintf
        - Branch String:   'libfreerdp/crypto/certificate.c:1398,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1399,3'
              BranchSideFuncs:
                - free
                - free
            - BranchSide:      'libfreerdp/crypto/certificate.c:1401,9'
              BranchSideFuncs:
                - calloc
                - free
                - free
                - snprintf
                - free
                - snprintf
                - snprintf
        - Branch String:   'libfreerdp/crypto/certificate.c:1403,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1404,3'
              BranchSideFuncs:
                - snprintf
                - free
                - snprintf
                - free
                - free
                - snprintf
            - BranchSide:      'libfreerdp/crypto/certificate.c:1406,6'
              BranchSideFuncs:
                - snprintf
                - free
                - snprintf
                - free
                - free
                - snprintf
        - Branch String:   'libfreerdp/crypto/certificate.c:1409,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1411,7'
              BranchSideFuncs:
                - snprintf
                - snprintf
                - free
                - free
                - free
                - snprintf
            - BranchSide:      'libfreerdp/crypto/certificate.c:1422,19'
              BranchSideFuncs:
                - snprintf
                - free
        - Branch String:   'libfreerdp/crypto/certificate.c:1413,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1414,19'
              BranchSideFuncs:
                - snprintf
                - snprintf
                - free
                - snprintf
                - free
                - free
            - BranchSide:      'libfreerdp/crypto/certificate.c:1416,19'
              BranchSideFuncs:
                - snprintf
                - snprintf
                - free
                - snprintf
                - free
                - free
        - Branch String:   'libfreerdp/crypto/certificate.c:1417,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1418,4'
              BranchSideFuncs:
                - free
                - free
            - BranchSide:      'libfreerdp/crypto/certificate.c:1419,18'
              BranchSideFuncs:
                - snprintf
                - free
                - snprintf
                - free
                - free
                - snprintf
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1386,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/certificate.c:1391,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/certificate.c:1394,7'
          Dst:             x509_utils_get_hash
        - Src:             'libfreerdp/crypto/certificate.c:1402,14'
          Dst:             calloc
        - Src:             'libfreerdp/crypto/certificate.c:1414,9'
          Dst:             snprintf
        - Src:             'libfreerdp/crypto/certificate.c:1416,9'
          Dst:             snprintf
        - Src:             'libfreerdp/crypto/certificate.c:1422,8'
          Dst:             snprintf
    - functionName:    freerdp_certificate_get_fingerprint_by_hash
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1372
      functionLinenumberEnd: 1373
      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:1373,9'
          Dst:             freerdp_certificate_get_fingerprint_by_hash_ex
    - functionName:    freerdp_certificate_get_fingerprint
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1367
      functionLinenumberEnd: 1368
      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:1368,9'
          Dst:             freerdp_certificate_get_fingerprint_by_hash
    - functionName:    freerdp_certificate_new_from_pem
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1354
      functionLinenumberEnd: 1355
      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:1355,9'
          Dst:             freerdp_certificate_new_from
    - functionName:    freerdp_certificate_new_from
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1339
      functionLinenumberEnd: 1346
      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:1341,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1342,3'
              BranchSideFuncs:
                - freerdp_certificate_new_from_x509
                - X509_free
            - BranchSide:      'libfreerdp/crypto/certificate.c:1343,59'
              BranchSideFuncs:
                - freerdp_certificate_new_from_x509
                - X509_free
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1340,41'
          Dst:             strlen
        - Src:             'libfreerdp/crypto/certificate.c:1340,15'
          Dst:             x509_utils_from_pem
        - Src:             'libfreerdp/crypto/certificate.c:1343,25'
          Dst:             freerdp_certificate_new_from_x509
        - Src:             'libfreerdp/crypto/certificate.c:1344,2'
          Dst:             X509_free
    - functionName:    freerdp_certificate_new_from_x509
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1314
      functionLinenumberEnd: 1336
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - xcert
        - chain
      BBCount:         20
      ICount:          101
      EdgeCount:       24
      CyclomaticComplexity: 6
      functionsReached:
        - X509_const_dup
        - X509_dup
        - X509_free
        - freerdp_certificate_free
        - freerdp_certificate_new
        - freerdp_rsa_from_x509
        - sk_X509_deep_copy
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:1315,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1315,2'
              BranchSideFuncs:
                - freerdp_certificate_new
                - X509_dup
                - freerdp_certificate_free
                - freerdp_rsa_from_x509
                - sk_X509_deep_copy
            - BranchSide:      'libfreerdp/crypto/certificate.c:1315,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/certificate.c:1318,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1319,3'
              BranchSideFuncs:
                - X509_dup
                - freerdp_certificate_free
                - freerdp_rsa_from_x509
                - sk_X509_deep_copy
            - BranchSide:      'libfreerdp/crypto/certificate.c:1321,16'
              BranchSideFuncs:
                - X509_dup
                - freerdp_certificate_free
                - freerdp_rsa_from_x509
                - sk_X509_deep_copy
        - Branch String:   'libfreerdp/crypto/certificate.c:1323,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1324,3'
              BranchSideFuncs:
                - freerdp_rsa_from_x509
                - freerdp_certificate_free
                - sk_X509_deep_copy
            - BranchSide:      'libfreerdp/crypto/certificate.c:1326,29'
              BranchSideFuncs:
                - freerdp_rsa_from_x509
                - freerdp_certificate_free
                - sk_X509_deep_copy
        - Branch String:   'libfreerdp/crypto/certificate.c:1326,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1327,3'
              BranchSideFuncs:
                - sk_X509_deep_copy
            - BranchSide:      'libfreerdp/crypto/certificate.c:1329,6'
              BranchSideFuncs:
                - sk_X509_deep_copy
        - Branch String:   'libfreerdp/crypto/certificate.c:1329,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1330,35'
              BranchSideFuncs:
                - sk_X509_deep_copy
            - BranchSide:      'libfreerdp/crypto/certificate.c:1332,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1315,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1317,25'
          Dst:             freerdp_certificate_new
        - Src:             'libfreerdp/crypto/certificate.c:1322,15'
          Dst:             X509_dup
        - Src:             'libfreerdp/crypto/certificate.c:1326,7'
          Dst:             freerdp_rsa_from_x509
        - Src:             'libfreerdp/crypto/certificate.c:1330,17'
          Dst:             sk_X509_deep_copy
        - Src:             'libfreerdp/crypto/certificate.c:1330,17'
          Dst:             X509_const_dup
        - Src:             'libfreerdp/crypto/certificate.c:1330,17'
          Dst:             X509_free
        - Src:             'libfreerdp/crypto/certificate.c:1334,2'
          Dst:             freerdp_certificate_free
    - functionName:    freerdp_certificate_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1210
      functionLinenumberEnd: 1211
      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:1211,26'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1211,26'
              BranchSideFuncs:
                - calloc
            - BranchSide:      'libfreerdp/crypto/certificate.c:1211,26'
              BranchSideFuncs:
                - calloc
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1211,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:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_rsa_from_x509
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1242
      functionLinenumberEnd: 1293
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - cert
      BBCount:         24
      ICount:          116
      EdgeCount:       30
      CyclomaticComplexity: 8
      functionsReached:
        - EVP_PKEY_get1_RSA
        - RSA_free
        - RSA_get0_key
        - X509_get0_pubkey
        - cert_info_create
        - freerdp_certificate_is_rsa
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:1245,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1245,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:1245,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/certificate.c:1247,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1248,3'
              BranchSideFuncs:
                - X509_get0_pubkey
                - RSA_free
                - EVP_PKEY_get1_RSA
                - RSA_get0_key
                - cert_info_create
            - BranchSide:      'libfreerdp/crypto/certificate.c:1251,7'
              BranchSideFuncs:
                - X509_get0_pubkey
                - RSA_free
                - EVP_PKEY_get1_RSA
                - RSA_get0_key
                - cert_info_create
        - Branch String:   'libfreerdp/crypto/certificate.c:1259,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1260,3'
              BranchSideFuncs:
                - EVP_PKEY_get1_RSA
                - RSA_free
                - RSA_get0_key
                - cert_info_create
            - BranchSide:      'libfreerdp/crypto/certificate.c:1263,26'
              BranchSideFuncs:
                - EVP_PKEY_get1_RSA
                - RSA_free
                - RSA_get0_key
                - cert_info_create
        - Branch String:   'libfreerdp/crypto/certificate.c:1267,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1268,3'
              BranchSideFuncs:
                - RSA_get0_key
                - RSA_free
                - cert_info_create
            - BranchSide:      'libfreerdp/crypto/certificate.c:1271,5'
              BranchSideFuncs:
                - RSA_get0_key
                - RSA_free
                - cert_info_create
        - Branch String:   'libfreerdp/crypto/certificate.c:1280,13'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1280,17'
              BranchSideFuncs:
                - RSA_free
                - cert_info_create
            - BranchSide:      'libfreerdp/crypto/certificate.c:1281,3'
              BranchSideFuncs:
                - RSA_free
        - Branch String:   'libfreerdp/crypto/certificate.c:1280,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1281,3'
              BranchSideFuncs:
                - cert_info_create
                - RSA_free
            - BranchSide:      'libfreerdp/crypto/certificate.c:1282,25'
              BranchSideFuncs:
                - cert_info_create
                - RSA_free
        - Branch String:   'libfreerdp/crypto/certificate.c:1282,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1283,3'
              BranchSideFuncs:
                - RSA_free
            - BranchSide:      'libfreerdp/crypto/certificate.c:1284,5'
              BranchSideFuncs:
                - RSA_free
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1245,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1247,7'
          Dst:             freerdp_certificate_is_rsa
        - Src:             'libfreerdp/crypto/certificate.c:1258,21'
          Dst:             X509_get0_pubkey
        - Src:             'libfreerdp/crypto/certificate.c:1263,8'
          Dst:             EVP_PKEY_get1_RSA
        - Src:             'libfreerdp/crypto/certificate.c:1273,2'
          Dst:             RSA_get0_key
        - Src:             'libfreerdp/crypto/certificate.c:1282,7'
          Dst:             cert_info_create
        - Src:             'libfreerdp/crypto/certificate.c:1287,2'
          Dst:             RSA_free
    - functionName:    X509_const_dup
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/opensslcompat.h'
      linkageType:     InternalLinkage
      functionLinenumber: 110
      functionLinenumberEnd: 112
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - x509
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - X509_dup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/opensslcompat.h:112,9'
          Dst:             X509_dup
    - functionName:    sk_X509_deep_copy
      functionSourceFile: '/usr/include/openssl/x509.h'
      linkageType:     InternalLinkage
      functionLinenumber: 99
      functionLinenumberEnd: 99
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - sk
        - copyfunc
        - freefunc
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - OPENSSL_sk_deep_copy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/usr/include/openssl/x509.h:99,1'
          Dst:             OPENSSL_sk_deep_copy
    - functionName:    freerdp_certificate_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1233
      functionLinenumberEnd: 1239
      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:1234,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1235,3'
              BranchSideFuncs:
                - certificate_free_int
                - free
            - BranchSide:      'libfreerdp/crypto/certificate.c:1237,23'
              BranchSideFuncs:
                - certificate_free_int
                - free
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1237,2'
          Dst:             certificate_free_int
    - functionName:    certificate_free_int
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1215
      functionLinenumberEnd: 1225
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - cert
      BBCount:         15
      ICount:          66
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - X509_free
        - cert_info_free
        - certificate_free_x509_certificate_chain
        - sk_X509_pop_free
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:1216,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1216,2'
              BranchSideFuncs:
                - certificate_free_x509_certificate_chain
                - cert_info_free
                - sk_X509_pop_free
                - X509_free
            - BranchSide:      'libfreerdp/crypto/certificate.c:1216,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/certificate.c:1218,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1219,13'
              BranchSideFuncs:
                - X509_free
                - certificate_free_x509_certificate_chain
                - cert_info_free
                - sk_X509_pop_free
            - BranchSide:      'libfreerdp/crypto/certificate.c:1220,6'
              BranchSideFuncs:
                - certificate_free_x509_certificate_chain
                - cert_info_free
                - sk_X509_pop_free
        - Branch String:   'libfreerdp/crypto/certificate.c:1220,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1220,6'
              BranchSideFuncs:
                - sk_X509_pop_free
                - certificate_free_x509_certificate_chain
                - cert_info_free
            - BranchSide:      'libfreerdp/crypto/certificate.c:1221,20'
              BranchSideFuncs:
                - sk_X509_pop_free
                - certificate_free_x509_certificate_chain
                - cert_info_free
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1216,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1219,3'
          Dst:             X509_free
        - Src:             'libfreerdp/crypto/certificate.c:1221,3'
          Dst:             sk_X509_pop_free
        - Src:             'libfreerdp/crypto/certificate.c:1221,3'
          Dst:             X509_free
        - Src:             'libfreerdp/crypto/certificate.c:1223,2'
          Dst:             certificate_free_x509_certificate_chain
        - Src:             'libfreerdp/crypto/certificate.c:1224,2'
          Dst:             cert_info_free
    - functionName:    OPENSSL_sk_deep_copy
      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:    freerdp_certificate_new_from_file
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1349
      functionLinenumberEnd: 1350
      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:1350,9'
          Dst:             freerdp_certificate_new_from
    - functionName:    freerdp_certificate_new_from_der
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1296
      functionLinenumberEnd: 1311
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - data
        - length
      BBCount:         18
      ICount:          94
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - d2i_X509
        - freerdp_certificate_free
        - freerdp_certificate_new
        - freerdp_rsa_from_x509
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:1299,12'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1299,16'
              BranchSideFuncs:
                - freerdp_certificate_free
                - d2i_X509
                - freerdp_rsa_from_x509
            - BranchSide:      'libfreerdp/crypto/certificate.c:1300,3'
              BranchSideFuncs:
                - freerdp_certificate_free
        - Branch String:   'libfreerdp/crypto/certificate.c:1299,21'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1299,25'
              BranchSideFuncs:
                - d2i_X509
                - freerdp_certificate_free
                - freerdp_rsa_from_x509
            - BranchSide:      'libfreerdp/crypto/certificate.c:1300,3'
              BranchSideFuncs:
                - freerdp_certificate_free
        - Branch String:   'libfreerdp/crypto/certificate.c:1299,38'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1299,42'
              BranchSideFuncs:
                - freerdp_certificate_free
            - BranchSide:      'libfreerdp/crypto/certificate.c:1300,3'
              BranchSideFuncs:
                - freerdp_certificate_free
        - Branch String:   'libfreerdp/crypto/certificate.c:1299,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1300,3'
              BranchSideFuncs:
                - freerdp_certificate_free
            - BranchSide:      'libfreerdp/crypto/certificate.c:1301,20'
              BranchSideFuncs:
                - d2i_X509
                - freerdp_certificate_free
                - freerdp_rsa_from_x509
        - Branch String:   'libfreerdp/crypto/certificate.c:1303,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1304,3'
              BranchSideFuncs:
                - freerdp_rsa_from_x509
                - freerdp_certificate_free
            - BranchSide:      'libfreerdp/crypto/certificate.c:1305,29'
              BranchSideFuncs:
                - freerdp_rsa_from_x509
                - freerdp_certificate_free
        - Branch String:   'libfreerdp/crypto/certificate.c:1305,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1306,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/certificate.c:1307,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1297,25'
          Dst:             freerdp_certificate_new
        - Src:             'libfreerdp/crypto/certificate.c:1302,15'
          Dst:             d2i_X509
        - Src:             'libfreerdp/crypto/certificate.c:1305,7'
          Dst:             freerdp_rsa_from_x509
        - Src:             'libfreerdp/crypto/certificate.c:1309,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: 1157
      functionLinenumberEnd: 1182
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - dst
        - src
      BBCount:         26
      ICount:          104
      EdgeCount:       30
      CyclomaticComplexity: 6
      functionsReached:
        - WLog_Print_dbg_tag
        - X509_dup
        - cert_info_clone
        - cert_x509_chain_copy
        - update_x509_from_info
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:1158,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1158,2'
              BranchSideFuncs:
                - winpr_int_assert
                - cert_info_clone
                - cert_x509_chain_copy
                - X509_dup
                - update_x509_from_info
                - WLog_Print_dbg_tag
            - BranchSide:      'libfreerdp/crypto/certificate.c:1158,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/certificate.c:1159,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1159,2'
              BranchSideFuncs:
                - cert_info_clone
                - cert_x509_chain_copy
                - X509_dup
                - update_x509_from_info
                - WLog_Print_dbg_tag
            - BranchSide:      'libfreerdp/crypto/certificate.c:1159,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/certificate.c:1161,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1162,3'
              BranchSideFuncs:
                - cert_x509_chain_copy
                - X509_dup
                - update_x509_from_info
                - WLog_Print_dbg_tag
            - BranchSide:      'libfreerdp/crypto/certificate.c:1164,6'
              BranchSideFuncs:
                - cert_x509_chain_copy
                - X509_dup
                - update_x509_from_info
                - WLog_Print_dbg_tag
        - Branch String:   'libfreerdp/crypto/certificate.c:1164,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1166,24'
              BranchSideFuncs:
                - X509_dup
                - update_x509_from_info
                - WLog_Print_dbg_tag
                - cert_x509_chain_copy
            - BranchSide:      'libfreerdp/crypto/certificate.c:1181,31'
              BranchSideFuncs:
                - cert_x509_chain_copy
        - Branch String:   'libfreerdp/crypto/certificate.c:1167,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1173,31'
              BranchSideFuncs:
                - cert_x509_chain_copy
            - BranchSide:      'libfreerdp/crypto/certificate.c:1179,2'
              BranchSideFuncs:
                - cert_x509_chain_copy
        - Branch String:   'libfreerdp/crypto/certificate.c:1173,8'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1175,5'
              BranchSideFuncs:
                - cert_x509_chain_copy
            - BranchSide:      'libfreerdp/crypto/certificate.c:1178,3'
              BranchSideFuncs:
                - cert_x509_chain_copy
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1158,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1159,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1161,7'
          Dst:             cert_info_clone
        - Src:             'libfreerdp/crypto/certificate.c:1166,15'
          Dst:             X509_dup
        - Src:             'libfreerdp/crypto/certificate.c:1173,9'
          Dst:             update_x509_from_info
        - Src:             'libfreerdp/crypto/certificate.c:1175,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/certificate.c:1181,9'
          Dst:             cert_x509_chain_copy
    - functionName:    freerdp_certificate_clone
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1185
      functionLinenumberEnd: 1202
      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:1186,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1187,3'
              BranchSideFuncs:
                - freerdp_certificate_new
                - cert_clone_int
                - freerdp_certificate_free
            - BranchSide:      'libfreerdp/crypto/certificate.c:1189,33'
              BranchSideFuncs:
                - freerdp_certificate_new
                - cert_clone_int
                - freerdp_certificate_free
        - Branch String:   'libfreerdp/crypto/certificate.c:1191,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1192,3'
              BranchSideFuncs:
                - cert_clone_int
                - freerdp_certificate_free
            - BranchSide:      'libfreerdp/crypto/certificate.c:1194,22'
              BranchSideFuncs:
                - cert_clone_int
                - freerdp_certificate_free
        - Branch String:   'libfreerdp/crypto/certificate.c:1194,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1195,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/certificate.c:1197,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1189,33'
          Dst:             freerdp_certificate_new
        - Src:             'libfreerdp/crypto/certificate.c:1194,7'
          Dst:             cert_clone_int
        - Src:             'libfreerdp/crypto/certificate.c:1200,2'
          Dst:             freerdp_certificate_free
    - functionName:    certificate_read_server_x509_certificate_chain
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1009
      functionLinenumberEnd: 1050
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - cert
        - s
      BBCount:         37
      ICount:          172
      EdgeCount:       44
      CyclomaticComplexity: 9
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - WLog_Print_dbg_tag
        - 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
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:1013,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1013,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_Print_dbg_tag
                - update_x509_from_info
            - BranchSide:      'libfreerdp/crypto/certificate.c:1013,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/certificate.c:1014,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1015,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_Print_dbg_tag
                - update_x509_from_info
            - BranchSide:      'libfreerdp/crypto/certificate.c:1017,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_Print_dbg_tag
                - update_x509_from_info
        - Branch String:   'libfreerdp/crypto/certificate.c:1021,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1023,24'
              BranchSideFuncs:
                - cert_blob_read
                - update_x509_from_info
                - certificate_read_x509_certificate
                - WLog_Print_dbg_tag
                - update_x509_from_info
            - BranchSide:      'libfreerdp/crypto/certificate.c:1049,31'
              BranchSideFuncs:
                - update_x509_from_info
        - Branch String:   'libfreerdp/crypto/certificate.c:1024,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1025,4'
              BranchSideFuncs:
                - update_x509_from_info
                - cert_blob_read
                - certificate_read_x509_certificate
                - WLog_Print_dbg_tag
                - update_x509_from_info
            - BranchSide:      'libfreerdp/crypto/certificate.c:1027,7'
              BranchSideFuncs:
                - update_x509_from_info
                - cert_blob_read
                - certificate_read_x509_certificate
                - WLog_Print_dbg_tag
                - update_x509_from_info
        - Branch String:   'libfreerdp/crypto/certificate.c:1027,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1029,4'
              BranchSideFuncs:
                - certificate_read_x509_certificate
                - WLog_Print_dbg_tag
                - update_x509_from_info
                - cert_blob_read
                - update_x509_from_info
            - BranchSide:      'libfreerdp/crypto/certificate.c:1047,2'
              BranchSideFuncs:
                - update_x509_from_info
                - cert_blob_read
                - certificate_read_x509_certificate
                - WLog_Print_dbg_tag
                - update_x509_from_info
        - Branch String:   'libfreerdp/crypto/certificate.c:1033,8'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1035,32'
              BranchSideFuncs:
                - update_x509_from_info
                - WLog_Print_dbg_tag
                - update_x509_from_info
                - cert_blob_read
                - certificate_read_x509_certificate
            - BranchSide:      'libfreerdp/crypto/certificate.c:1039,9'
              BranchSideFuncs:
                - WLog_Print_dbg_tag
                - update_x509_from_info
                - cert_blob_read
                - certificate_read_x509_certificate
                - update_x509_from_info
        - Branch String:   'libfreerdp/crypto/certificate.c:1035,9'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1036,10'
              BranchSideFuncs:
                - WLog_Print_dbg_tag
                - update_x509_from_info
                - cert_blob_read
                - certificate_read_x509_certificate
                - update_x509_from_info
            - BranchSide:      'libfreerdp/crypto/certificate.c:1037,4'
              BranchSideFuncs:
                - WLog_Print_dbg_tag
                - update_x509_from_info
                - cert_blob_read
                - certificate_read_x509_certificate
                - update_x509_from_info
        - Branch String:   'libfreerdp/crypto/certificate.c:1039,8'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1041,5'
              BranchSideFuncs:
                - update_x509_from_info
                - cert_blob_read
                - certificate_read_x509_certificate
                - WLog_Print_dbg_tag
                - update_x509_from_info
            - BranchSide:      'libfreerdp/crypto/certificate.c:1045,4'
              BranchSideFuncs:
                - update_x509_from_info
                - cert_blob_read
                - certificate_read_x509_certificate
                - WLog_Print_dbg_tag
                - update_x509_from_info
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1013,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1014,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/certificate.c:1017,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/crypto/certificate.c:1018,2'
          Dst:             certificate_free_x509_certificate_chain
        - Src:             'libfreerdp/crypto/certificate.c:1019,26'
          Dst:             certificate_new_x509_certificate_chain
        - Src:             'libfreerdp/crypto/certificate.c:1024,8'
          Dst:             cert_blob_read
        - Src:             'libfreerdp/crypto/certificate.c:1031,15'
          Dst:             certificate_read_x509_certificate
        - Src:             'libfreerdp/crypto/certificate.c:1035,10'
          Dst:             update_x509_from_info
        - Src:             'libfreerdp/crypto/certificate.c:1041,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/certificate.c:1049,9'
          Dst:             update_x509_from_info
    - functionName:    certificate_read_server_proprietary_certificate
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 796
      functionLinenumberEnd: 869
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - certificate
        - s
      BBCount:         66
      ICount:          326
      EdgeCount:       80
      CyclomaticComplexity: 16
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_Pointer
        - WLog_Print_dbg_tag
        - certificate_process_server_public_key
        - certificate_process_server_public_signature
        - stream_read_u16_le
        - stream_read_u32_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:805,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:805,2'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthEx
                - Stream_Pointer
                - stream_read_u32_le
                - stream_read_u32_le
                - WLog_Print_dbg_tag
                - stream_read_u16_le
                - stream_read_u16_le
                - Stream_CheckAndLogRequiredLengthEx
                - certificate_process_server_public_key
                - Stream_CheckAndLogRequiredLengthEx
                - Stream_Pointer
                - Stream_Pointer
                - winpr_int_assert
                - Stream_Pointer
                - Stream_Pointer
                - winpr_int_assert
                - Stream_Pointer
                - Stream_Pointer
                - stream_read_u16_le
                - stream_read_u16_le
                - Stream_CheckAndLogRequiredLengthEx
                - certificate_process_server_public_signature
                - WLog_Print_dbg_tag
                - WLog_Print_dbg_tag
                - WLog_Print_dbg_tag
                - Stream_Pointer
                - WLog_Print_dbg_tag
            - BranchSide:      'libfreerdp/crypto/certificate.c:805,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/certificate.c:806,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:807,3'
              BranchSideFuncs:
                - Stream_Pointer
                - stream_read_u32_le
                - stream_read_u32_le
                - WLog_Print_dbg_tag
                - stream_read_u16_le
                - stream_read_u16_le
                - Stream_CheckAndLogRequiredLengthEx
                - certificate_process_server_public_key
                - Stream_CheckAndLogRequiredLengthEx
                - Stream_Pointer
                - Stream_Pointer
                - winpr_int_assert
                - Stream_Pointer
                - Stream_Pointer
                - winpr_int_assert
                - Stream_Pointer
                - Stream_Pointer
                - stream_read_u16_le
                - stream_read_u16_le
                - Stream_CheckAndLogRequiredLengthEx
                - certificate_process_server_public_signature
                - WLog_Print_dbg_tag
                - WLog_Print_dbg_tag
                - WLog_Print_dbg_tag
                - Stream_Pointer
                - WLog_Print_dbg_tag
            - BranchSide:      'libfreerdp/crypto/certificate.c:810,24'
              BranchSideFuncs:
                - Stream_Pointer
                - stream_read_u32_le
                - stream_read_u32_le
                - WLog_Print_dbg_tag
                - stream_read_u16_le
                - stream_read_u16_le
                - Stream_CheckAndLogRequiredLengthEx
                - certificate_process_server_public_key
                - Stream_CheckAndLogRequiredLengthEx
                - Stream_Pointer
                - Stream_Pointer
                - winpr_int_assert
                - Stream_Pointer
                - Stream_Pointer
                - winpr_int_assert
                - Stream_Pointer
                - Stream_Pointer
                - stream_read_u16_le
                - stream_read_u16_le
                - Stream_CheckAndLogRequiredLengthEx
                - certificate_process_server_public_signature
                - WLog_Print_dbg_tag
                - WLog_Print_dbg_tag
                - WLog_Print_dbg_tag
                - Stream_Pointer
                - WLog_Print_dbg_tag
        - Branch String:   'libfreerdp/crypto/certificate.c:814,42'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:814,46'
              BranchSideFuncs:
                - WLog_Print_dbg_tag
                - stream_read_u16_le
                - stream_read_u16_le
                - Stream_CheckAndLogRequiredLengthEx
                - certificate_process_server_public_key
                - Stream_CheckAndLogRequiredLengthEx
                - Stream_Pointer
                - Stream_Pointer
                - winpr_int_assert
                - Stream_Pointer
                - Stream_Pointer
                - winpr_int_assert
                - Stream_Pointer
                - Stream_Pointer
                - stream_read_u16_le
                - stream_read_u16_le
                - Stream_CheckAndLogRequiredLengthEx
                - certificate_process_server_public_signature
                - WLog_Print_dbg_tag
                - WLog_Print_dbg_tag
                - WLog_Print_dbg_tag
                - Stream_Pointer
                - WLog_Print_dbg_tag
            - BranchSide:      'libfreerdp/crypto/certificate.c:816,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag
        - Branch String:   'libfreerdp/crypto/certificate.c:814,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:816,3'
              BranchSideFuncs:
                - stream_read_u16_le
                - stream_read_u16_le
                - Stream_CheckAndLogRequiredLengthEx
                - certificate_process_server_public_key
                - Stream_CheckAndLogRequiredLengthEx
                - Stream_Pointer
                - Stream_Pointer
                - winpr_int_assert
                - Stream_Pointer
                - Stream_Pointer
                - winpr_int_assert
                - Stream_Pointer
                - Stream_Pointer
                - stream_read_u16_le
                - stream_read_u16_le
                - Stream_CheckAndLogRequiredLengthEx
                - certificate_process_server_public_signature
                - WLog_Print_dbg_tag
                - WLog_Print_dbg_tag
                - WLog_Print_dbg_tag
                - Stream_Pointer
                - WLog_Print_dbg_tag
            - BranchSide:      'libfreerdp/crypto/certificate.c:823,2'
              BranchSideFuncs:
                - stream_read_u16_le
                - stream_read_u16_le
                - Stream_CheckAndLogRequiredLengthEx
                - certificate_process_server_public_key
                - Stream_CheckAndLogRequiredLengthEx
                - Stream_Pointer
                - Stream_Pointer
                - winpr_int_assert
                - Stream_Pointer
                - Stream_Pointer
                - winpr_int_assert
                - Stream_Pointer
                - Stream_Pointer
                - stream_read_u16_le
                - stream_read_u16_le
                - Stream_CheckAndLogRequiredLengthEx
                - certificate_process_server_public_signature
                - WLog_Print_dbg_tag
                - WLog_Print_dbg_tag
                - WLog_Print_dbg_tag
                - Stream_Pointer
                - WLog_Print_dbg_tag
        - Branch String:   'libfreerdp/crypto/certificate.c:825,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:827,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag
            - BranchSide:      'libfreerdp/crypto/certificate.c:831,2'
              BranchSideFuncs:
                - stream_read_u16_le
                - Stream_CheckAndLogRequiredLengthEx
                - certificate_process_server_public_key
                - Stream_CheckAndLogRequiredLengthEx
                - Stream_Pointer
                - Stream_Pointer
                - winpr_int_assert
                - Stream_Pointer
                - Stream_Pointer
                - winpr_int_assert
                - Stream_Pointer
                - Stream_Pointer
                - stream_read_u16_le
                - stream_read_u16_le
                - Stream_CheckAndLogRequiredLengthEx
                - certificate_process_server_public_signature
                - WLog_Print_dbg_tag
                - WLog_Print_dbg_tag
                - WLog_Print_dbg_tag
                - Stream_Pointer
        - Branch String:   'libfreerdp/crypto/certificate.c:833,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:834,3'
              BranchSideFuncs:
                - certificate_process_server_public_key
                - Stream_CheckAndLogRequiredLengthEx
                - Stream_Pointer
                - Stream_Pointer
                - winpr_int_assert
                - Stream_Pointer
                - Stream_Pointer
                - winpr_int_assert
                - Stream_Pointer
                - Stream_Pointer
                - stream_read_u16_le
                - stream_read_u16_le
                - Stream_CheckAndLogRequiredLengthEx
                - certificate_process_server_public_signature
                - WLog_Print_dbg_tag
                - WLog_Print_dbg_tag
                - WLog_Print_dbg_tag
                - Stream_Pointer
            - BranchSide:      'libfreerdp/crypto/certificate.c:836,45'
              BranchSideFuncs:
                - certificate_process_server_public_key
                - Stream_CheckAndLogRequiredLengthEx
                - Stream_Pointer
                - Stream_Pointer
                - winpr_int_assert
                - Stream_Pointer
                - Stream_Pointer
                - winpr_int_assert
                - Stream_Pointer
                - Stream_Pointer
                - stream_read_u16_le
                - stream_read_u16_le
                - Stream_CheckAndLogRequiredLengthEx
                - certificate_process_server_public_signature
                - WLog_Print_dbg_tag
                - WLog_Print_dbg_tag
                - WLog_Print_dbg_tag
                - Stream_Pointer
        - Branch String:   'libfreerdp/crypto/certificate.c:836,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:837,3'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthEx
                - Stream_Pointer
                - Stream_Pointer
                - winpr_int_assert
                - Stream_Pointer
                - Stream_Pointer
                - winpr_int_assert
                - Stream_Pointer
                - Stream_Pointer
                - stream_read_u16_le
                - stream_read_u16_le
                - Stream_CheckAndLogRequiredLengthEx
                - certificate_process_server_public_signature
                - WLog_Print_dbg_tag
                - WLog_Print_dbg_tag
                - WLog_Print_dbg_tag
                - Stream_Pointer
            - BranchSide:      'libfreerdp/crypto/certificate.c:839,7'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthEx
                - Stream_Pointer
                - Stream_Pointer
                - winpr_int_assert
                - Stream_Pointer
                - Stream_Pointer
                - winpr_int_assert
                - Stream_Pointer
                - Stream_Pointer
                - stream_read_u16_le
                - stream_read_u16_le
                - Stream_CheckAndLogRequiredLengthEx
                - certificate_process_server_public_signature
                - WLog_Print_dbg_tag
                - WLog_Print_dbg_tag
                - WLog_Print_dbg_tag
                - Stream_Pointer
        - Branch String:   'libfreerdp/crypto/certificate.c:839,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:840,3'
              BranchSideFuncs:
                - Stream_Pointer
                - Stream_Pointer
                - winpr_int_assert
                - Stream_Pointer
                - Stream_Pointer
                - winpr_int_assert
                - Stream_Pointer
                - Stream_Pointer
                - stream_read_u16_le
                - stream_read_u16_le
                - Stream_CheckAndLogRequiredLengthEx
                - certificate_process_server_public_signature
                - WLog_Print_dbg_tag
                - WLog_Print_dbg_tag
                - WLog_Print_dbg_tag
                - Stream_Pointer
            - BranchSide:      'libfreerdp/crypto/certificate.c:842,15'
              BranchSideFuncs:
                - Stream_Pointer
                - Stream_Pointer
                - winpr_int_assert
                - Stream_Pointer
                - Stream_Pointer
                - winpr_int_assert
                - Stream_Pointer
                - Stream_Pointer
                - stream_read_u16_le
                - stream_read_u16_le
                - Stream_CheckAndLogRequiredLengthEx
                - certificate_process_server_public_signature
                - WLog_Print_dbg_tag
                - WLog_Print_dbg_tag
                - WLog_Print_dbg_tag
                - Stream_Pointer
        - Branch String:   'libfreerdp/crypto/certificate.c:842,15'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:842,15'
              BranchSideFuncs:
                - Stream_Pointer
                - Stream_Pointer
                - winpr_int_assert
                - Stream_Pointer
                - Stream_Pointer
                - stream_read_u16_le
                - stream_read_u16_le
                - Stream_CheckAndLogRequiredLengthEx
                - certificate_process_server_public_signature
                - WLog_Print_dbg_tag
                - WLog_Print_dbg_tag
                - WLog_Print_dbg_tag
                - Stream_Pointer
            - BranchSide:      'libfreerdp/crypto/certificate.c:842,15'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/certificate.c:842,15'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:842,15'
              BranchSideFuncs:
                - Stream_Pointer
                - Stream_Pointer
                - winpr_int_assert
                - Stream_Pointer
                - Stream_Pointer
                - stream_read_u16_le
                - stream_read_u16_le
                - Stream_CheckAndLogRequiredLengthEx
                - certificate_process_server_public_signature
                - WLog_Print_dbg_tag
                - WLog_Print_dbg_tag
                - WLog_Print_dbg_tag
            - BranchSide:      'libfreerdp/crypto/certificate.c:842,15'
              BranchSideFuncs:
                - Stream_Pointer
                - winpr_int_assert
                - Stream_Pointer
                - Stream_Pointer
                - stream_read_u16_le
                - stream_read_u16_le
                - Stream_CheckAndLogRequiredLengthEx
                - certificate_process_server_public_signature
                - WLog_Print_dbg_tag
                - WLog_Print_dbg_tag
                - WLog_Print_dbg_tag
        - Branch String:   'libfreerdp/crypto/certificate.c:842,15'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:842,15'
              BranchSideFuncs:
                - Stream_Pointer
                - stream_read_u16_le
                - stream_read_u16_le
                - Stream_CheckAndLogRequiredLengthEx
                - certificate_process_server_public_signature
                - WLog_Print_dbg_tag
                - WLog_Print_dbg_tag
                - WLog_Print_dbg_tag
            - BranchSide:      'libfreerdp/crypto/certificate.c:842,15'
              BranchSideFuncs:
                - Stream_Pointer
                - winpr_int_assert
                - Stream_Pointer
                - Stream_Pointer
                - stream_read_u16_le
                - stream_read_u16_le
                - Stream_CheckAndLogRequiredLengthEx
                - certificate_process_server_public_signature
                - WLog_Print_dbg_tag
                - WLog_Print_dbg_tag
                - WLog_Print_dbg_tag
        - Branch String:   'libfreerdp/crypto/certificate.c:842,15'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:842,15'
              BranchSideFuncs:
                - Stream_Pointer
                - winpr_int_assert
                - Stream_Pointer
                - stream_read_u16_le
                - stream_read_u16_le
                - Stream_CheckAndLogRequiredLengthEx
                - certificate_process_server_public_signature
                - WLog_Print_dbg_tag
                - WLog_Print_dbg_tag
                - WLog_Print_dbg_tag
            - BranchSide:      'libfreerdp/crypto/certificate.c:842,15'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/certificate.c:842,15'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:842,15'
              BranchSideFuncs:
                - Stream_Pointer
                - stream_read_u16_le
                - stream_read_u16_le
                - Stream_CheckAndLogRequiredLengthEx
                - certificate_process_server_public_signature
                - WLog_Print_dbg_tag
                - WLog_Print_dbg_tag
                - WLog_Print_dbg_tag
            - BranchSide:      'libfreerdp/crypto/certificate.c:842,15'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/certificate.c:845,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:847,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag
            - BranchSide:      'libfreerdp/crypto/certificate.c:851,2'
              BranchSideFuncs:
                - stream_read_u16_le
                - Stream_CheckAndLogRequiredLengthEx
                - certificate_process_server_public_signature
                - WLog_Print_dbg_tag
                - WLog_Print_dbg_tag
        - Branch String:   'libfreerdp/crypto/certificate.c:853,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:854,3'
              BranchSideFuncs:
                - certificate_process_server_public_signature
                - WLog_Print_dbg_tag
                - WLog_Print_dbg_tag
            - BranchSide:      'libfreerdp/crypto/certificate.c:856,6'
              BranchSideFuncs:
                - certificate_process_server_public_signature
                - WLog_Print_dbg_tag
                - WLog_Print_dbg_tag
        - Branch String:   'libfreerdp/crypto/certificate.c:856,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:858,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag
            - BranchSide:      'libfreerdp/crypto/certificate.c:862,51'
              BranchSideFuncs:
                - certificate_process_server_public_signature
                - WLog_Print_dbg_tag
        - Branch String:   'libfreerdp/crypto/certificate.c:862,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:865,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/certificate.c:868,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:805,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:806,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/certificate.c:810,24'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/crypto/certificate.c:811,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/crypto/certificate.c:812,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/crypto/certificate.c:816,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/certificate.c:823,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/crypto/certificate.c:827,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/certificate.c:831,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/crypto/certificate.c:833,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/certificate.c:836,7'
          Dst:             certificate_process_server_public_key
        - Src:             'libfreerdp/crypto/certificate.c:839,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/certificate.c:842,15'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/crypto/certificate.c:842,15'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/crypto/certificate.c:842,15'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:842,15'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/crypto/certificate.c:842,15'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/crypto/certificate.c:842,15'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/crypto/certificate.c:842,15'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/crypto/certificate.c:842,15'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:842,15'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/crypto/certificate.c:843,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/crypto/certificate.c:847,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/certificate.c:851,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/crypto/certificate.c:853,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/certificate.c:858,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/certificate.c:862,7'
          Dst:             certificate_process_server_public_signature
        - Src:             'libfreerdp/crypto/certificate.c:865,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    freerdp_certificate_read_server_cert
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1061
      functionLinenumberEnd: 1103
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - certificate
        - server_cert
        - length
      BBCount:         26
      ICount:          117
      EdgeCount:       27
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_StaticConstInit
        - WLog_Print_dbg_tag
        - certificate_read_server_proprietary_certificate
        - certificate_read_server_x509_certificate_chain
        - stream_read_u32_le
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:1067,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1067,2'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_StaticConstInit
                - WLog_Print_dbg_tag
                - stream_read_u32_le
                - certificate_read_server_x509_certificate_chain
                - certificate_read_server_proprietary_certificate
                - WLog_Print_dbg_tag
                - WLog_Print_dbg_tag
            - BranchSide:      'libfreerdp/crypto/certificate.c:1067,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/certificate.c:1068,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1070,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag
            - BranchSide:      'libfreerdp/crypto/certificate.c:1074,2'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_StaticConstInit
                - WLog_Print_dbg_tag
                - stream_read_u32_le
                - certificate_read_server_x509_certificate_chain
                - certificate_read_server_proprietary_certificate
                - WLog_Print_dbg_tag
        - Branch String:   'libfreerdp/crypto/certificate.c:1074,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1074,2'
              BranchSideFuncs:
                - Stream_StaticConstInit
                - WLog_Print_dbg_tag
                - stream_read_u32_le
                - certificate_read_server_x509_certificate_chain
                - certificate_read_server_proprietary_certificate
                - WLog_Print_dbg_tag
            - BranchSide:      'libfreerdp/crypto/certificate.c:1074,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/certificate.c:1077,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1079,3'
              BranchSideFuncs:
                - stream_read_u32_le
                - certificate_read_server_x509_certificate_chain
                - certificate_read_server_proprietary_certificate
                - WLog_Print_dbg_tag
            - BranchSide:      'libfreerdp/crypto/certificate.c:1083,2'
              BranchSideFuncs:
                - stream_read_u32_le
                - certificate_read_server_x509_certificate_chain
                - certificate_read_server_proprietary_certificate
                - WLog_Print_dbg_tag
        - Branch String:   'libfreerdp/crypto/certificate.c:1085,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1088,58'
              BranchSideFuncs:
                - certificate_read_server_proprietary_certificate
            - BranchSide:      'libfreerdp/crypto/certificate.c:1092,57'
              BranchSideFuncs:
                - certificate_read_server_x509_certificate_chain
            - BranchSide:      'libfreerdp/crypto/certificate.c:1096,4'
              BranchSideFuncs:
                - WLog_Print_dbg_tag
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1067,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1070,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/certificate.c:1074,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:1075,6'
          Dst:             Stream_StaticConstInit
        - Src:             'libfreerdp/crypto/certificate.c:1079,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/certificate.c:1083,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/crypto/certificate.c:1088,10'
          Dst:             certificate_read_server_proprietary_certificate
        - Src:             'libfreerdp/crypto/certificate.c:1092,10'
          Dst:             certificate_read_server_x509_certificate_chain
        - Src:             'libfreerdp/crypto/certificate.c:1096,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    cert_write_server_certificate_v2
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 942
      functionLinenumberEnd: 963
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - certificate
      BBCount:         34
      ICount:          150
      EdgeCount:       38
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT32_unchecked
        - Stream_Zero
        - cert_blob_write
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:943,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:943,2'
              BranchSideFuncs:
                - Stream_EnsureRemainingCapacity
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked
                - Stream_EnsureRemainingCapacity
                - Stream_Zero
                - cert_blob_write
            - BranchSide:      'libfreerdp/crypto/certificate.c:943,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/certificate.c:948,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:949,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked
                - Stream_EnsureRemainingCapacity
                - Stream_Zero
                - cert_blob_write
            - BranchSide:      'libfreerdp/crypto/certificate.c:951,2'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked
                - Stream_EnsureRemainingCapacity
                - Stream_Zero
                - cert_blob_write
        - Branch String:   'libfreerdp/crypto/certificate.c:951,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:951,2'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked
                - Stream_EnsureRemainingCapacity
                - Stream_Zero
                - cert_blob_write
            - BranchSide:      'libfreerdp/crypto/certificate.c:951,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/certificate.c:951,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:951,2'
              BranchSideFuncs:
                - Stream_Write_UINT32_unchecked
                - Stream_EnsureRemainingCapacity
                - Stream_Zero
                - cert_blob_write
            - BranchSide:      'libfreerdp/crypto/certificate.c:951,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/certificate.c:952,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:954,30'
              BranchSideFuncs:
                - cert_blob_write
                - Stream_EnsureRemainingCapacity
                - Stream_Zero
            - BranchSide:      'libfreerdp/crypto/certificate.c:959,38'
              BranchSideFuncs:
                - Stream_EnsureRemainingCapacity
                - Stream_Zero
        - Branch String:   'libfreerdp/crypto/certificate.c:955,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:956,4'
              BranchSideFuncs:
                - Stream_EnsureRemainingCapacity
                - Stream_Zero
                - cert_blob_write
            - BranchSide:      'libfreerdp/crypto/certificate.c:957,2'
              BranchSideFuncs:
                - Stream_EnsureRemainingCapacity
                - Stream_Zero
                - cert_blob_write
        - Branch String:   'libfreerdp/crypto/certificate.c:959,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:960,3'
              BranchSideFuncs:
                - Stream_Zero
            - BranchSide:      'libfreerdp/crypto/certificate.c:961,14'
              BranchSideFuncs:
                - Stream_Zero
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:943,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:948,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/crypto/certificate.c:951,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:951,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:951,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/crypto/certificate.c:955,8'
          Dst:             cert_blob_write
        - Src:             'libfreerdp/crypto/certificate.c:959,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/crypto/certificate.c:961,2'
          Dst:             Stream_Zero
    - functionName:    cert_write_server_certificate_v1
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 924
      functionLinenumberEnd: 939
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - certificate
      BBCount:         44
      ICount:          117
      EdgeCount:       46
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_GetPosition
        - Stream_Pointer
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - cert_write_rsa_public_key
        - cert_write_rsa_signature
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:928,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:928,2'
              BranchSideFuncs:
                - Stream_EnsureRemainingCapacity
                - Stream_Write_UINT32_unchecked
                - Stream_Write_UINT32_unchecked
                - Stream_Write_UINT16_unchecked
                - cert_write_rsa_public_key
                - Stream_GetPosition
                - cert_write_rsa_signature
            - BranchSide:      'libfreerdp/crypto/certificate.c:928,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/certificate.c:929,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:930,3'
              BranchSideFuncs:
                - Stream_Write_UINT32_unchecked
                - Stream_Write_UINT32_unchecked
                - Stream_Write_UINT16_unchecked
                - cert_write_rsa_public_key
                - Stream_GetPosition
                - cert_write_rsa_signature
            - BranchSide:      'libfreerdp/crypto/certificate.c:931,2'
              BranchSideFuncs:
                - Stream_Write_UINT32_unchecked
                - Stream_Write_UINT32_unchecked
                - Stream_Write_UINT16_unchecked
                - cert_write_rsa_public_key
                - Stream_GetPosition
                - cert_write_rsa_signature
        - Branch String:   'libfreerdp/crypto/certificate.c:934,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:935,3'
              BranchSideFuncs:
                - Stream_GetPosition
                - cert_write_rsa_signature
            - BranchSide:      'libfreerdp/crypto/certificate.c:937,40'
              BranchSideFuncs:
                - Stream_GetPosition
                - cert_write_rsa_signature
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:925,23'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/crypto/certificate.c:926,24'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/crypto/certificate.c:928,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:929,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/crypto/certificate.c:931,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/crypto/certificate.c:932,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/crypto/certificate.c:933,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'libfreerdp/crypto/certificate.c:934,7'
          Dst:             cert_write_rsa_public_key
        - Src:             'libfreerdp/crypto/certificate.c:937,21'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/crypto/certificate.c:938,9'
          Dst:             cert_write_rsa_signature
    - functionName:    Stream_GetPosition
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1304
      functionLinenumberEnd: 1307
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - _s
      BBCount:         15
      ICount:          55
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:1305,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:1305,3'
              BranchSideFuncs:
                - winpr_int_assert
            - BranchSide:      'winpr/include/winpr/stream.h:1305,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:1306,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:1306,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/stream.h:1306,3'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1305,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1306,3'
          Dst:             winpr_int_assert
    - functionName:    freerdp_certificate_write_server_cert
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 967
      functionLinenumberEnd: 999
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - certificate
        - dwVersion
        - s
      BBCount:         38
      ICount:          159
      EdgeCount:       42
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_GetPosition
        - Stream_Write_UINT32_unchecked
        - WLog_Print_dbg_tag
        - cert_write_server_certificate_v1
        - cert_write_server_certificate_v2
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:968,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:969,3'
              BranchSideFuncs:
                - Stream_GetPosition
                - Stream_EnsureRemainingCapacity
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked
                - cert_write_server_certificate_v2
                - Stream_GetPosition
                - winpr_int_assert
                - cert_write_server_certificate_v1
                - WLog_Print_dbg_tag
            - BranchSide:      'libfreerdp/crypto/certificate.c:971,42'
              BranchSideFuncs:
                - Stream_GetPosition
                - Stream_EnsureRemainingCapacity
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked
                - cert_write_server_certificate_v2
                - Stream_GetPosition
                - winpr_int_assert
                - cert_write_server_certificate_v1
                - WLog_Print_dbg_tag
        - Branch String:   'libfreerdp/crypto/certificate.c:972,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:973,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked
                - cert_write_server_certificate_v2
                - Stream_GetPosition
                - winpr_int_assert
                - cert_write_server_certificate_v1
                - WLog_Print_dbg_tag
            - BranchSide:      'libfreerdp/crypto/certificate.c:974,2'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked
                - cert_write_server_certificate_v2
                - Stream_GetPosition
                - winpr_int_assert
                - cert_write_server_certificate_v1
                - WLog_Print_dbg_tag
        - Branch String:   'libfreerdp/crypto/certificate.c:974,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:974,2'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked
                - cert_write_server_certificate_v2
                - Stream_GetPosition
                - winpr_int_assert
                - cert_write_server_certificate_v1
                - WLog_Print_dbg_tag
            - BranchSide:      'libfreerdp/crypto/certificate.c:974,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/certificate.c:974,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:974,2'
              BranchSideFuncs:
                - Stream_Write_UINT32_unchecked
                - cert_write_server_certificate_v2
                - Stream_GetPosition
                - winpr_int_assert
                - cert_write_server_certificate_v1
                - WLog_Print_dbg_tag
            - BranchSide:      'libfreerdp/crypto/certificate.c:974,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/certificate.c:976,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:979,42'
              BranchSideFuncs:
                - cert_write_server_certificate_v1
                - Stream_GetPosition
                - winpr_int_assert
            - BranchSide:      'libfreerdp/crypto/certificate.c:983,42'
              BranchSideFuncs:
                - cert_write_server_certificate_v2
                - Stream_GetPosition
                - winpr_int_assert
            - BranchSide:      'libfreerdp/crypto/certificate.c:987,4'
              BranchSideFuncs:
                - WLog_Print_dbg_tag
        - Branch String:   'libfreerdp/crypto/certificate.c:979,8'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:980,5'
              BranchSideFuncs:
                - Stream_GetPosition
                - winpr_int_assert
            - BranchSide:      'libfreerdp/crypto/certificate.c:981,4'
              BranchSideFuncs:
                - Stream_GetPosition
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/certificate.c:983,8'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:984,5'
              BranchSideFuncs:
                - Stream_GetPosition
                - winpr_int_assert
            - BranchSide:      'libfreerdp/crypto/certificate.c:985,4'
              BranchSideFuncs:
                - Stream_GetPosition
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/certificate.c:993,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:994,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/certificate.c:996,22'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/certificate.c:997,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:997,2'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/certificate.c:997,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:971,23'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/crypto/certificate.c:972,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/crypto/certificate.c:974,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:974,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/certificate.c:974,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'libfreerdp/crypto/certificate.c:979,9'
          Dst:             cert_write_server_certificate_v1
        - Src:             'libfreerdp/crypto/certificate.c:983,9'
          Dst:             cert_write_server_certificate_v2
        - Src:             'libfreerdp/crypto/certificate.c:987,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/certificate.c:992,21'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/crypto/certificate.c:997,2'
          Dst:             winpr_int_assert
    - 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:         114
      ICount:          560
      EdgeCount:       144
      CyclomaticComplexity: 32
      functionsReached:
        - BN_CTX_free
        - BN_CTX_new
        - BN_bin2bn
        - BN_bn2bin
        - BN_clear_free
        - BN_free
        - BN_mod_exp
        - BN_new
        - calloc
        - crypto_reverse
        - winpr_int_assert
      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
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - crypto_reverse
                - winpr_int_assert
                - winpr_int_assert
            - 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
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - crypto_reverse
                - winpr_int_assert
                - winpr_int_assert
            - 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
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - crypto_reverse
                - winpr_int_assert
                - winpr_int_assert
            - 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
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - crypto_reverse
                - winpr_int_assert
                - winpr_int_assert
            - 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
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - crypto_reverse
                - winpr_int_assert
                - winpr_int_assert
        - 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
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - crypto_reverse
                - winpr_int_assert
                - winpr_int_assert
        - 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
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - crypto_reverse
                - winpr_int_assert
                - winpr_int_assert
        - 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
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - crypto_reverse
                - winpr_int_assert
                - winpr_int_assert
            - 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
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - crypto_reverse
                - winpr_int_assert
                - winpr_int_assert
        - 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
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - crypto_reverse
                - winpr_int_assert
                - winpr_int_assert
            - 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
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - crypto_reverse
                - winpr_int_assert
                - winpr_int_assert
        - 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
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - crypto_reverse
                - winpr_int_assert
                - winpr_int_assert
            - 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
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - crypto_reverse
                - winpr_int_assert
                - winpr_int_assert
        - 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
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - crypto_reverse
                - winpr_int_assert
                - winpr_int_assert
            - 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
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - crypto_reverse
                - winpr_int_assert
                - winpr_int_assert
        - 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
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - crypto_reverse
                - winpr_int_assert
                - winpr_int_assert
            - 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
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - crypto_reverse
                - winpr_int_assert
                - winpr_int_assert
        - 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
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - crypto_reverse
                - winpr_int_assert
                - winpr_int_assert
            - 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
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - crypto_reverse
                - winpr_int_assert
                - winpr_int_assert
        - 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
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - crypto_reverse
                - winpr_int_assert
                - winpr_int_assert
            - 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
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - crypto_reverse
                - winpr_int_assert
                - winpr_int_assert
        - 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
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - crypto_reverse
                - winpr_int_assert
                - winpr_int_assert
            - 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
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - crypto_reverse
                - winpr_int_assert
                - winpr_int_assert
        - 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
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - crypto_reverse
                - winpr_int_assert
                - winpr_int_assert
            - 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
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - crypto_reverse
                - winpr_int_assert
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/crypto.c:102,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:103,3'
              BranchSideFuncs:
                - BN_mod_exp
                - BN_bn2bin
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - crypto_reverse
                - BN_free
                - BN_clear_free
                - BN_free
                - BN_free
                - BN_CTX_free
                - free
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'libfreerdp/crypto/crypto.c:104,17'
              BranchSideFuncs:
                - BN_mod_exp
                - BN_bn2bin
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - crypto_reverse
                - BN_free
                - BN_clear_free
                - BN_free
                - BN_free
                - BN_CTX_free
                - free
                - winpr_int_assert
                - winpr_int_assert
        - 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
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - crypto_reverse
                - BN_free
                - BN_clear_free
                - BN_free
                - BN_free
                - BN_CTX_free
                - free
                - winpr_int_assert
                - winpr_int_assert
        - 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,6'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - crypto_reverse
                - BN_free
                - BN_clear_free
                - BN_free
                - BN_free
                - BN_CTX_free
                - free
                - winpr_int_assert
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/crypto.c:109,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:109,6'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - crypto_reverse
                - BN_free
                - BN_clear_free
                - BN_free
                - BN_free
                - BN_CTX_free
                - free
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'libfreerdp/crypto/crypto.c:109,6'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/crypto.c:109,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:109,6'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - crypto_reverse
                - BN_free
                - BN_clear_free
                - BN_free
                - BN_free
                - BN_CTX_free
                - free
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'libfreerdp/crypto/crypto.c:109,6'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - crypto_reverse
                - BN_free
                - BN_clear_free
                - BN_free
                - BN_free
                - BN_CTX_free
                - free
                - winpr_int_assert
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/crypto.c:109,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:109,6'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - crypto_reverse
                - BN_free
                - BN_clear_free
                - BN_free
                - BN_free
                - BN_CTX_free
                - free
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'libfreerdp/crypto/crypto.c:109,6'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - crypto_reverse
                - BN_free
                - BN_clear_free
                - BN_free
                - BN_free
                - BN_CTX_free
                - free
                - winpr_int_assert
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/crypto.c:109,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:109,6'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - crypto_reverse
                - BN_free
                - BN_clear_free
                - BN_free
                - BN_free
                - BN_CTX_free
                - free
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'libfreerdp/crypto/crypto.c:109,6'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/crypto.c:109,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:109,6'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - crypto_reverse
                - BN_free
                - BN_clear_free
                - BN_free
                - BN_free
                - BN_CTX_free
                - free
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'libfreerdp/crypto/crypto.c:109,6'
              BranchSideFuncs:
                - winpr_int_assert
        - 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:
                - winpr_int_assert
                - winpr_int_assert
                - crypto_reverse
                - BN_free
                - BN_clear_free
                - BN_free
                - BN_free
                - BN_CTX_free
                - free
                - winpr_int_assert
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/crypto.c:111,25'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:111,25'
              BranchSideFuncs:
                - winpr_int_assert
                - crypto_reverse
                - BN_free
                - BN_clear_free
                - BN_free
                - BN_free
                - BN_CTX_free
                - free
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'libfreerdp/crypto/crypto.c:111,25'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/crypto.c:111,25'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:111,25'
              BranchSideFuncs:
                - winpr_int_assert
                - crypto_reverse
                - BN_free
                - BN_clear_free
                - BN_free
                - BN_free
                - BN_CTX_free
                - free
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'libfreerdp/crypto/crypto.c:111,25'
              BranchSideFuncs:
                - winpr_int_assert
                - crypto_reverse
                - BN_free
                - BN_clear_free
                - BN_free
                - BN_free
                - BN_CTX_free
                - free
                - winpr_int_assert
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/crypto.c:111,25'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:111,25'
              BranchSideFuncs:
                - crypto_reverse
                - BN_free
                - BN_clear_free
                - BN_free
                - BN_free
                - BN_CTX_free
                - free
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'libfreerdp/crypto/crypto.c:111,25'
              BranchSideFuncs:
                - winpr_int_assert
                - crypto_reverse
                - BN_free
                - BN_clear_free
                - BN_free
                - BN_free
                - BN_CTX_free
                - free
                - winpr_int_assert
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/crypto.c:111,25'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:111,25'
              BranchSideFuncs:
                - winpr_int_assert
                - crypto_reverse
                - BN_free
                - BN_clear_free
                - BN_free
                - BN_free
                - BN_CTX_free
                - free
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'libfreerdp/crypto/crypto.c:111,25'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/crypto.c:111,25'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:111,25'
              BranchSideFuncs:
                - crypto_reverse
                - BN_free
                - BN_clear_free
                - BN_free
                - BN_free
                - BN_CTX_free
                - free
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'libfreerdp/crypto/crypto.c:111,25'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/crypto.c:113,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:113,30'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - BN_free
                - BN_clear_free
                - BN_free
                - BN_free
                - BN_CTX_free
                - free
            - BranchSide:      'libfreerdp/crypto/crypto.c:115,17'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - BN_free
                - BN_clear_free
                - BN_free
                - BN_free
                - BN_CTX_free
                - free
        - Branch String:   'libfreerdp/crypto/crypto.c:115,30'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:115,30'
              BranchSideFuncs:
                - winpr_int_assert
                - BN_free
                - BN_clear_free
                - BN_free
                - BN_free
                - BN_CTX_free
                - free
            - BranchSide:      'libfreerdp/crypto/crypto.c:115,30'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/crypto.c:115,30'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:115,30'
              BranchSideFuncs:
                - winpr_int_assert
                - BN_free
                - BN_clear_free
                - BN_free
                - BN_free
                - BN_CTX_free
                - free
            - BranchSide:      'libfreerdp/crypto/crypto.c:115,30'
              BranchSideFuncs:
                - winpr_int_assert
                - BN_free
                - BN_clear_free
                - BN_free
                - BN_free
                - BN_CTX_free
                - free
        - Branch String:   'libfreerdp/crypto/crypto.c:115,30'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:115,30'
              BranchSideFuncs:
                - BN_free
                - BN_clear_free
                - BN_free
                - BN_free
                - BN_CTX_free
                - free
            - BranchSide:      'libfreerdp/crypto/crypto.c:115,30'
              BranchSideFuncs:
                - winpr_int_assert
                - BN_free
                - BN_clear_free
                - BN_free
                - BN_free
                - BN_CTX_free
                - free
        - Branch String:   'libfreerdp/crypto/crypto.c:115,30'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:115,30'
              BranchSideFuncs:
                - winpr_int_assert
                - BN_free
                - BN_clear_free
                - BN_free
                - BN_free
                - BN_CTX_free
                - free
            - BranchSide:      'libfreerdp/crypto/crypto.c:115,30'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/crypto.c:115,30'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:115,30'
              BranchSideFuncs:
                - BN_free
                - BN_clear_free
                - BN_free
                - BN_free
                - BN_CTX_free
                - free
            - BranchSide:      'libfreerdp/crypto/crypto.c:115,30'
              BranchSideFuncs:
                - winpr_int_assert
        - 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:109,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/crypto.c:109,6'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/crypto.c:111,25'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/crypto.c:111,25'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/crypto.c:111,2'
          Dst:             crypto_reverse
        - Src:             'libfreerdp/crypto/crypto.c:115,30'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/crypto.c:115,30'
          Dst:             winpr_int_assert
        - 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:          141
      EdgeCount:       39
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
        - __errno_location
        - fclose
        - fwrite
        - strnlen
        - winpr_fopen
        - winpr_int_assert
        - winpr_strerror
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/crypto.c:240,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:240,2'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - strnlen
                - winpr_fopen
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.162
                - fwrite
                - fclose
            - BranchSide:      'libfreerdp/crypto/crypto.c:240,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/crypto.c:241,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:241,2'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - strnlen
                - winpr_fopen
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.162
                - fwrite
                - fclose
            - BranchSide:      'libfreerdp/crypto/crypto.c:241,2'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - strnlen
                - winpr_fopen
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.162
                - fwrite
                - fclose
        - Branch String:   'libfreerdp/crypto/crypto.c:241,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:241,2'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - strnlen
                - winpr_fopen
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.162
                - fwrite
                - fclose
            - BranchSide:      'libfreerdp/crypto/crypto.c:241,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/crypto.c:243,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:243,2'
              BranchSideFuncs:
                - winpr_int_assert
                - strnlen
                - winpr_fopen
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.162
                - fwrite
                - fclose
            - BranchSide:      'libfreerdp/crypto/crypto.c:243,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/crypto.c:244,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:244,2'
              BranchSideFuncs:
                - strnlen
                - winpr_fopen
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.162
                - fwrite
                - fclose
            - BranchSide:      'libfreerdp/crypto/crypto.c:244,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/crypto.c:249,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:250,3'
              BranchSideFuncs:
                - fwrite
                - fclose
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.162
            - BranchSide:      'libfreerdp/crypto/crypto.c:251,14'
              BranchSideFuncs:
                - fwrite
                - fclose
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.162
        - Branch String:   'libfreerdp/crypto/crypto.c:254,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:254,6'
              BranchSideFuncs:
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.162
            - BranchSide:      'libfreerdp/crypto/crypto.c:256,8'
              BranchSideFuncs:
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.162
      Callsites:
        - Src:             'libfreerdp/crypto/crypto.c:240,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/crypto.c:241,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/crypto.c:243,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/crypto.c:244,2'
          Dst:             winpr_int_assert
        - 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:             __errno_location
        - Src:             'libfreerdp/crypto/crypto.c:257,3'
          Dst:             winpr_strerror
        - Src:             'libfreerdp/crypto/crypto.c:257,3'
          Dst:             WLog_Print_dbg_tag
    - 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:    167
      BranchProfiles:  []
      Callsites:       []
    - functionName:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 216
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - tag
        - log_level
        - line
        - file
        - fkt
      BBCount:         9
      ICount:          67
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintMessageVA
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/wlog.h:206,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/wlog.h:207,30'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessageVA
            - BranchSide:      'winpr/include/winpr/wlog.h:209,26'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessageVA
        - Branch String:   'winpr/include/winpr/wlog.h:209,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/wlog.h:209,7'
              BranchSideFuncs:
                - WLog_PrintMessageVA
            - BranchSide:      'winpr/include/winpr/wlog.h:212,4'
              BranchSideFuncs:
                - WLog_PrintMessageVA
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:207,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:209,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:213,4'
          Dst:             WLog_PrintMessageVA
    - functionName:    _ftelli64
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wtypes.h'
      linkageType:     InternalLinkage
      functionLinenumber: 494
      functionLinenumberEnd: 495
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - fp
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ftello64
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/wtypes.h:495,9'
          Dst:             ftello64
    - 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:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    _fseeki64
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wtypes.h'
      linkageType:     InternalLinkage
      functionLinenumber: 488
      functionLinenumberEnd: 489
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - fp
        - offset
        - origin
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fseeko64
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/wtypes.h:489,9'
          Dst:             fseeko64
    - 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:    3
      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:         74
      ICount:          299
      EdgeCount:       89
      CyclomaticComplexity: 17
      functionsReached:
        - WLog_Print_dbg_tag
        - __errno_location
        - _fseeki64
        - _ftelli64
        - calloc
        - fclose
        - fread
        - strnlen
        - winpr_fopen
        - winpr_int_assert
        - 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
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.162
                - free
                - fclose
                - _fseeki64
                - _ftelli64
                - _fseeki64
                - winpr_int_assert
                - winpr_int_assert
                - calloc
                - fread
                - fclose
                - winpr_int_assert
                - winpr_int_assert
                - strnlen
            - BranchSide:      'libfreerdp/crypto/crypto.c:194,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/crypto.c:196,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:197,4'
              BranchSideFuncs:
                - winpr_fopen
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.162
                - free
                - fclose
                - _fseeki64
                - _ftelli64
                - _fseeki64
                - winpr_int_assert
                - winpr_int_assert
                - calloc
                - fread
                - fclose
                - winpr_int_assert
                - winpr_int_assert
                - strnlen
            - BranchSide:      'libfreerdp/crypto/crypto.c:199,19'
              BranchSideFuncs:
                - winpr_fopen
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.162
                - free
                - fclose
                - _fseeki64
                - _ftelli64
                - _fseeki64
                - winpr_int_assert
                - winpr_int_assert
                - calloc
                - fread
                - fclose
                - winpr_int_assert
                - winpr_int_assert
                - strnlen
        - Branch String:   'libfreerdp/crypto/crypto.c:200,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:201,3'
              BranchSideFuncs:
                - _fseeki64
                - _ftelli64
                - _fseeki64
                - winpr_int_assert
                - winpr_int_assert
                - calloc
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.162
                - free
                - fclose
                - fread
                - fclose
                - winpr_int_assert
                - winpr_int_assert
                - strnlen
            - BranchSide:      'libfreerdp/crypto/crypto.c:202,27'
              BranchSideFuncs:
                - _fseeki64
                - _ftelli64
                - _fseeki64
                - winpr_int_assert
                - winpr_int_assert
                - calloc
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.162
                - free
                - fclose
                - fread
                - fclose
                - winpr_int_assert
                - winpr_int_assert
                - strnlen
        - Branch String:   'libfreerdp/crypto/crypto.c:203,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:204,3'
              BranchSideFuncs:
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.162
                - free
                - fclose
            - BranchSide:      'libfreerdp/crypto/crypto.c:205,33'
              BranchSideFuncs:
                - _ftelli64
                - _fseeki64
                - winpr_int_assert
                - winpr_int_assert
                - calloc
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.162
                - free
                - fclose
                - fread
                - fclose
                - winpr_int_assert
                - winpr_int_assert
                - strnlen
        - Branch String:   'libfreerdp/crypto/crypto.c:206,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:207,3'
              BranchSideFuncs:
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.162
                - free
                - fclose
            - BranchSide:      'libfreerdp/crypto/crypto.c:208,27'
              BranchSideFuncs:
                - _fseeki64
                - winpr_int_assert
                - winpr_int_assert
                - calloc
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.162
                - free
                - fclose
                - fread
                - fclose
                - winpr_int_assert
                - winpr_int_assert
                - strnlen
        - Branch String:   'libfreerdp/crypto/crypto.c:209,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:210,3'
              BranchSideFuncs:
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.162
                - free
                - fclose
            - BranchSide:      'libfreerdp/crypto/crypto.c:212,15'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - calloc
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.162
                - free
                - fclose
                - fread
                - fclose
                - winpr_int_assert
                - winpr_int_assert
                - strnlen
        - Branch String:   'libfreerdp/crypto/crypto.c:212,15'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:212,15'
              BranchSideFuncs:
                - winpr_int_assert
                - calloc
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.162
                - free
                - fclose
                - fread
                - fclose
                - winpr_int_assert
                - winpr_int_assert
                - strnlen
            - BranchSide:      'libfreerdp/crypto/crypto.c:212,15'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/crypto.c:212,15'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:212,15'
              BranchSideFuncs:
                - winpr_int_assert
                - calloc
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.162
                - free
                - fclose
                - fread
                - fclose
                - winpr_int_assert
                - winpr_int_assert
                - strnlen
            - BranchSide:      'libfreerdp/crypto/crypto.c:212,15'
              BranchSideFuncs:
                - winpr_int_assert
                - calloc
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.162
                - free
                - fclose
                - fread
                - fclose
                - winpr_int_assert
                - winpr_int_assert
                - strnlen
        - Branch String:   'libfreerdp/crypto/crypto.c:212,15'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:212,15'
              BranchSideFuncs:
                - calloc
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.162
                - free
                - fclose
                - fread
                - fclose
                - winpr_int_assert
                - winpr_int_assert
                - strnlen
            - BranchSide:      'libfreerdp/crypto/crypto.c:212,15'
              BranchSideFuncs:
                - winpr_int_assert
                - calloc
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.162
                - free
                - fclose
                - fread
                - fclose
                - winpr_int_assert
                - winpr_int_assert
                - strnlen
        - Branch String:   'libfreerdp/crypto/crypto.c:212,15'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:212,15'
              BranchSideFuncs:
                - winpr_int_assert
                - calloc
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.162
                - free
                - fclose
                - fread
                - fclose
                - winpr_int_assert
                - winpr_int_assert
                - strnlen
            - BranchSide:      'libfreerdp/crypto/crypto.c:212,15'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/crypto.c:212,15'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:212,15'
              BranchSideFuncs:
                - calloc
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.162
                - free
                - fclose
                - fread
                - fclose
                - winpr_int_assert
                - winpr_int_assert
                - strnlen
            - BranchSide:      'libfreerdp/crypto/crypto.c:212,15'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/crypto.c:213,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:214,3'
              BranchSideFuncs:
                - fread
                - fclose
                - winpr_int_assert
                - winpr_int_assert
                - strnlen
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.162
                - free
                - fclose
            - BranchSide:      'libfreerdp/crypto/crypto.c:216,26'
              BranchSideFuncs:
                - fread
                - fclose
                - winpr_int_assert
                - winpr_int_assert
                - strnlen
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.162
                - free
                - fclose
        - Branch String:   'libfreerdp/crypto/crypto.c:217,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:218,3'
              BranchSideFuncs:
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.162
                - free
                - fclose
            - BranchSide:      'libfreerdp/crypto/crypto.c:220,6'
              BranchSideFuncs:
                - fclose
                - winpr_int_assert
                - winpr_int_assert
                - strnlen
        - Branch String:   'libfreerdp/crypto/crypto.c:220,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:221,22'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - strnlen
                - fclose
            - BranchSide:      'libfreerdp/crypto/crypto.c:222,15'
              BranchSideFuncs:
                - fclose
        - Branch String:   'libfreerdp/crypto/crypto.c:221,27'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:221,27'
              BranchSideFuncs:
                - winpr_int_assert
                - strnlen
                - fclose
            - BranchSide:      'libfreerdp/crypto/crypto.c:221,27'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/crypto.c:221,27'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:221,27'
              BranchSideFuncs:
                - winpr_int_assert
                - strnlen
                - fclose
            - BranchSide:      'libfreerdp/crypto/crypto.c:221,27'
              BranchSideFuncs:
                - winpr_int_assert
                - strnlen
                - fclose
        - Branch String:   'libfreerdp/crypto/crypto.c:221,27'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:221,27'
              BranchSideFuncs:
                - strnlen
                - fclose
            - BranchSide:      'libfreerdp/crypto/crypto.c:221,27'
              BranchSideFuncs:
                - winpr_int_assert
                - strnlen
                - fclose
        - Branch String:   'libfreerdp/crypto/crypto.c:221,27'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:221,27'
              BranchSideFuncs:
                - winpr_int_assert
                - strnlen
                - fclose
            - BranchSide:      'libfreerdp/crypto/crypto.c:221,27'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/crypto.c:221,27'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:221,27'
              BranchSideFuncs:
                - strnlen
                - fclose
            - BranchSide:      'libfreerdp/crypto/crypto.c:221,27'
              BranchSideFuncs:
                - winpr_int_assert
        - 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:             winpr_int_assert
        - Src:             'libfreerdp/crypto/crypto.c:199,7'
          Dst:             winpr_fopen
        - Src:             'libfreerdp/crypto/crypto.c:202,17'
          Dst:             _fseeki64
        - Src:             'libfreerdp/crypto/crypto.c:205,23'
          Dst:             _ftelli64
        - Src:             'libfreerdp/crypto/crypto.c:208,17'
          Dst:             _fseeki64
        - Src:             'libfreerdp/crypto/crypto.c:212,15'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/crypto.c:212,15'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/crypto.c:212,8'
          Dst:             calloc
        - Src:             'libfreerdp/crypto/crypto.c:216,20'
          Dst:             fread
        - Src:             'libfreerdp/crypto/crypto.c:221,27'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/crypto.c:221,27'
          Dst:             winpr_int_assert
        - 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:             __errno_location
        - Src:             'libfreerdp/crypto/crypto.c:228,2'
          Dst:             winpr_strerror
        - Src:             'libfreerdp/crypto/crypto.c:228,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/crypto.c:232,9'
          Dst:             fclose
    - 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:         15
      ICount:          79
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - crypto_rsa_common
        - freerdp_key_get_exponent
        - freerdp_key_get_info
        - winpr_int_assert
      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
                - winpr_int_assert
                - freerdp_key_get_exponent
                - crypto_rsa_common
            - BranchSide:      'libfreerdp/crypto/crypto.c:142,2'
              BranchSideFuncs:
                - winpr_int_assert
        - 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:
                - winpr_int_assert
      Callsites:
        - Src:             'libfreerdp/crypto/crypto.c:142,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/crypto.c:143,28'
          Dst:             freerdp_key_get_info
        - Src:             'libfreerdp/crypto/crypto.c:144,2'
          Dst:             winpr_int_assert
        - 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:         9
      ICount:          55
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - crypto_rsa_common
        - winpr_int_assert
      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:
                - winpr_int_assert
      Callsites:
        - Src:             'libfreerdp/crypto/crypto.c:134,2'
          Dst:             winpr_int_assert
        - 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:    winpr_Data_Write_UINT32_BE
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/endian.h'
      linkageType:     InternalLinkage
      functionLinenumber: 266
      functionLinenumberEnd: 271
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - d
        - v
      BBCount:         9
      ICount:          48
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_Data_Write_UINT16_BE
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/endian.h:267,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/endian.h:267,3'
              BranchSideFuncs:
                - winpr_Data_Write_UINT16_BE
                - winpr_Data_Write_UINT16_BE
            - BranchSide:      'winpr/include/winpr/endian.h:267,3'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/include/winpr/endian.h:267,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/endian.h:269,3'
          Dst:             winpr_Data_Write_UINT16_BE
        - Src:             'winpr/include/winpr/endian.h:270,3'
          Dst:             winpr_Data_Write_UINT16_BE
    - functionName:    winpr_Data_Write_UINT16_BE
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/endian.h'
      linkageType:     InternalLinkage
      functionLinenumber: 243
      functionLinenumberEnd: 248
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - d
        - v
      BBCount:         9
      ICount:          51
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/endian.h:244,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/endian.h:244,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/endian.h:244,3'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/include/winpr/endian.h:244,3'
          Dst:             winpr_int_assert
    - functionName:    winpr_Data_Get_UINT32_BE
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/endian.h'
      linkageType:     InternalLinkage
      functionLinenumber: 127
      functionLinenumberEnd: 137
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - d
      BBCount:         13
      ICount:          67
      EdgeCount:       14
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/endian.h:128,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/endian.h:128,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/endian.h:128,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/endian.h:132,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/endian.h:134,6'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/endian.h:137,10'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/include/winpr/endian.h:128,3'
          Dst:             winpr_int_assert
    - functionName:    winpr_Data_Write_UINT8
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/endian.h'
      linkageType:     InternalLinkage
      functionLinenumber: 221
      functionLinenumberEnd: 225
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - d
        - v
      BBCount:         9
      ICount:          39
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/endian.h:222,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/endian.h:222,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/endian.h:222,3'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/include/winpr/endian.h:222,3'
          Dst:             winpr_int_assert
    - functionName:    winpr_Data_Get_UINT16_BE
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/endian.h'
      linkageType:     InternalLinkage
      functionLinenumber: 73
      functionLinenumberEnd: 83
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - d
      BBCount:         13
      ICount:          71
      EdgeCount:       14
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/endian.h:74,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/endian.h:74,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/endian.h:74,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/endian.h:78,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/endian.h:80,6'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/endian.h:83,10'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/include/winpr/endian.h:74,3'
          Dst:             winpr_int_assert
    - functionName:    winpr_Data_Get_UINT8
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/endian.h'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      char
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - d
      BBCount:         9
      ICount:          35
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/endian.h:40,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/endian.h:40,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/endian.h:40,3'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/include/winpr/endian.h:40,3'
          Dst:             winpr_int_assert
    - functionName:    ber_read_integer_length
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 731
      functionLinenumberEnd: 732
      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_length
        - ber_read_universal_tag
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/ber.c:732,59'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:732,78'
              BranchSideFuncs:
                - ber_read_length
            - BranchSide:      'libfreerdp/crypto/ber.c:732,59'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:732,9'
          Dst:             ber_read_universal_tag
        - Src:             'libfreerdp/crypto/ber.c:732,62'
          Dst:             ber_read_length
    - functionName:    ber_read_universal_tag
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 124
      functionLinenumberEnd: 142
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - char
        - int
      constantsTouched: []
      argNames:
        - s
        - tag
        - pc
      BBCount:         16
      ICount:          88
      EdgeCount:       18
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - WLog_Print_dbg_tag
        - stream_read_u8
        - winpr_int_assert
      functionUses:    6
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/ber.c:128,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:128,2'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8.296
                - WLog_Print_dbg_tag.298
            - BranchSide:      'libfreerdp/crypto/ber.c:128,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:130,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:131,3'
              BranchSideFuncs:
                - stream_read_u8.296
                - WLog_Print_dbg_tag.298
            - BranchSide:      'libfreerdp/crypto/ber.c:133,2'
              BranchSideFuncs:
                - stream_read_u8.296
                - WLog_Print_dbg_tag.298
        - Branch String:   'libfreerdp/crypto/ber.c:135,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:137,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.298
            - BranchSide:      'libfreerdp/crypto/ber.c:141,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:128,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:130,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/ber.c:133,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/crypto/ber.c:137,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    ber_read_length
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 68
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - length
      BBCount:         35
      ICount:          136
      EdgeCount:       40
      CyclomaticComplexity: 7
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - WLog_Print_dbg_tag
        - stream_read_u16_be
        - stream_read_u8
        - winpr_int_assert
      functionUses:    10
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/ber.c:37,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:37,2'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8.296
                - Stream_CheckAndLogRequiredLengthEx
                - WLog_Print_dbg_tag.298
                - stream_read_u16_be
                - stream_read_u8.296
            - BranchSide:      'libfreerdp/crypto/ber.c:37,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:38,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:38,2'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8.296
                - Stream_CheckAndLogRequiredLengthEx
                - WLog_Print_dbg_tag.298
                - stream_read_u16_be
                - stream_read_u8.296
            - BranchSide:      'libfreerdp/crypto/ber.c:38,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:40,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:41,3'
              BranchSideFuncs:
                - stream_read_u8.296
                - Stream_CheckAndLogRequiredLengthEx
                - WLog_Print_dbg_tag.298
                - stream_read_u16_be
                - stream_read_u8.296
            - BranchSide:      'libfreerdp/crypto/ber.c:43,2'
              BranchSideFuncs:
                - stream_read_u8.296
                - Stream_CheckAndLogRequiredLengthEx
                - WLog_Print_dbg_tag.298
                - stream_read_u16_be
                - stream_read_u8.296
        - Branch String:   'libfreerdp/crypto/ber.c:45,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:47,8'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthEx
                - WLog_Print_dbg_tag.298
                - stream_read_u16_be
                - stream_read_u8.296
            - BranchSide:      'libfreerdp/crypto/ber.c:64,13'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/ber.c:49,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:50,4'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.298
                - stream_read_u16_be
                - stream_read_u8.296
            - BranchSide:      'libfreerdp/crypto/ber.c:52,7'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.298
                - stream_read_u16_be
                - stream_read_u8.296
        - Branch String:   'libfreerdp/crypto/ber.c:52,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:53,4'
              BranchSideFuncs:
                - stream_read_u8.296
            - BranchSide:      'libfreerdp/crypto/ber.c:54,12'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.298
                - stream_read_u16_be
        - Branch String:   'libfreerdp/crypto/ber.c:54,12'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:55,4'
              BranchSideFuncs:
                - stream_read_u16_be
            - BranchSide:      'libfreerdp/crypto/ber.c:58,4'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.298
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:37,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:38,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:40,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/ber.c:43,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/crypto/ber.c:49,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/ber.c:53,4'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/crypto/ber.c:55,4'
          Dst:             stream_read_u16_be
        - Src:             'libfreerdp/crypto/ber.c:58,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    stream_read_u8
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 144
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      char
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - _s
        - seek
      BBCount:         18
      ICount:          65
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_GetRemainingLength
        - Stream_Seek
        - winpr_Data_Get_UINT8
        - winpr_int_assert
      functionUses:    13
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:145,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:145,3'
              BranchSideFuncs:
                - Stream_GetRemainingLength
                - winpr_int_assert
                - winpr_Data_Get_UINT8.287
                - Stream_Seek.303
            - BranchSide:      'winpr/include/winpr/stream.h:145,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:146,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:146,3'
              BranchSideFuncs:
                - winpr_Data_Get_UINT8.287
                - Stream_Seek.303
            - BranchSide:      'winpr/include/winpr/stream.h:146,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:149,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:149,7'
              BranchSideFuncs:
                - Stream_Seek.303
            - BranchSide:      'winpr/include/winpr/stream.h:150,16'
              BranchSideFuncs:
                - Stream_Seek.303
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:145,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:146,3'
          Dst:             Stream_GetRemainingLength
        - Src:             'winpr/include/winpr/stream.h:146,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:148,19'
          Dst:             winpr_Data_Get_UINT8
        - Src:             'winpr/include/winpr/stream.h:150,4'
          Dst:             Stream_Seek
    - functionName:    stream_read_u16_be
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 175
      functionLinenumberEnd: 183
      functionDepth:   0
      returnType:      short
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - _s
        - seek
      BBCount:         18
      ICount:          68
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_GetRemainingLength
        - Stream_Seek
        - winpr_Data_Get_UINT16_BE
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:177,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:177,3'
              BranchSideFuncs:
                - Stream_GetRemainingLength
                - winpr_int_assert
                - winpr_Data_Get_UINT16_BE
                - Stream_Seek.303
            - BranchSide:      'winpr/include/winpr/stream.h:177,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:178,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:178,3'
              BranchSideFuncs:
                - winpr_Data_Get_UINT16_BE
                - Stream_Seek.303
            - BranchSide:      'winpr/include/winpr/stream.h:178,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:181,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:181,7'
              BranchSideFuncs:
                - Stream_Seek.303
            - BranchSide:      'winpr/include/winpr/stream.h:182,16'
              BranchSideFuncs:
                - Stream_Seek.303
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:177,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:178,3'
          Dst:             Stream_GetRemainingLength
        - Src:             'winpr/include/winpr/stream.h:178,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:180,20'
          Dst:             winpr_Data_Get_UINT16_BE
        - Src:             'winpr/include/winpr/stream.h:182,4'
          Dst:             Stream_Seek
    - functionName:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 216
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - tag
        - log_level
        - line
        - file
        - fkt
      BBCount:         9
      ICount:          67
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintMessageVA
      functionUses:    13
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/wlog.h:206,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/wlog.h:207,30'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessageVA
            - BranchSide:      'winpr/include/winpr/wlog.h:209,26'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessageVA
        - Branch String:   'winpr/include/winpr/wlog.h:209,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/wlog.h:209,7'
              BranchSideFuncs:
                - WLog_PrintMessageVA
            - BranchSide:      'winpr/include/winpr/wlog.h:212,4'
              BranchSideFuncs:
                - WLog_PrintMessageVA
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:207,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:209,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:213,4'
          Dst:             WLog_PrintMessageVA
    - functionName:    Stream_Seek
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 124
      functionLinenumberEnd: 128
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - s
        - _offset
      BBCount:         15
      ICount:          53
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - winpr_int_assert
      functionUses:    6
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:125,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:125,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - winpr_int_assert
            - BranchSide:      'winpr/include/winpr/stream.h:125,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:126,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:126,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/stream.h:126,3'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:125,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:126,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:126,3'
          Dst:             winpr_int_assert
    - functionName:    ber_sizeof_contextual_integer
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 725
      functionLinenumberEnd: 727
      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:726,19'
          Dst:             ber_sizeof_integer
        - Src:             'libfreerdp/crypto/ber.c:727,9'
          Dst:             ber_sizeof_contextual_tag
    - functionName:    ber_sizeof_integer
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 700
      functionLinenumberEnd: 722
      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:701,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:703,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/ber.c:705,11'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/ber.c:705,11'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:707,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/ber.c:709,11'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/ber.c:709,11'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:711,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/ber.c:713,11'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/ber.c:713,11'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:715,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/ber.c:720,3'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    ber_sizeof_contextual_tag
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 280
      functionLinenumberEnd: 281
      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:281,13'
          Dst:             _ber_sizeof_length
    - functionName:    _ber_sizeof_length
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 104
      functionLinenumberEnd: 112
      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:105,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:106,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/ber.c:108,6'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/ber.c:108,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:109,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/ber.c:111,2'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    ber_write_contextual_integer
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 687
      functionLinenumberEnd: 696
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - char
        - int
      constantsTouched: []
      argNames:
        - s
        - tag
        - value
      BBCount:         15
      ICount:          67
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - ber_sizeof_integer
        - ber_write_contextual_tag
        - ber_write_integer
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/ber.c:690,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:690,2'
              BranchSideFuncs:
                - Stream_EnsureRemainingCapacity
                - winpr_int_assert
                - ber_write_contextual_tag
                - ber_write_integer
            - BranchSide:      'libfreerdp/crypto/ber.c:690,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:692,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:692,2'
              BranchSideFuncs:
                - ber_write_contextual_tag
                - ber_write_integer
            - BranchSide:      'libfreerdp/crypto/ber.c:692,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:688,15'
          Dst:             ber_sizeof_integer
        - Src:             'libfreerdp/crypto/ber.c:690,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:692,2'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/crypto/ber.c:692,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:694,9'
          Dst:             ber_write_contextual_tag
        - Src:             'libfreerdp/crypto/ber.c:695,2'
          Dst:             ber_write_integer
    - functionName:    ber_write_contextual_tag
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 272
      functionLinenumberEnd: 276
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - char
        - size_t
        - int
      constantsTouched: []
      argNames:
        - s
        - tag
        - length
        - pc
      BBCount:         29
      ICount:          115
      EdgeCount:       29
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - Stream_Write_UINT8_unchecked
        - ber_write_length
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/ber.c:273,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:273,2'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
                - ber_write_length
            - BranchSide:      'libfreerdp/crypto/ber.c:273,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:274,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:274,2'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
                - ber_write_length
            - BranchSide:      'libfreerdp/crypto/ber.c:274,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:275,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:275,2'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
                - ber_write_length
            - BranchSide:      'libfreerdp/crypto/ber.c:275,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:275,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:275,2'
              BranchSideFuncs:
                - Stream_Write_UINT8_unchecked
                - ber_write_length
            - BranchSide:      'libfreerdp/crypto/ber.c:275,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:273,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:274,2'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'libfreerdp/crypto/ber.c:274,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:275,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:275,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:275,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/crypto/ber.c:276,13'
          Dst:             ber_write_length
    - functionName:    ber_write_integer
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 639
      functionLinenumberEnd: 684
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - s
        - value
      BBCount:         354
      ICount:          1147
      EdgeCount:       394
      CyclomaticComplexity: 42
      functionsReached:
        - Stream_Write_UINT16_BE_unchecked
        - Stream_Write_UINT32_BE_unchecked
        - Stream_Write_UINT8_unchecked
        - ber_write_length
        - ber_write_universal_tag
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/ber.c:640,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:640,2'
              BranchSideFuncs:
                - ber_write_universal_tag
                - ber_write_length
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked
                - ber_write_universal_tag
                - ber_write_length
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked
                - ber_write_universal_tag
                - ber_write_length
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked
                - ber_write_universal_tag
                - ber_write_length
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked
                - ber_write_universal_tag
                - ber_write_length
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:640,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:642,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:644,27'
              BranchSideFuncs:
                - ber_write_universal_tag
                - ber_write_length
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:650,11'
              BranchSideFuncs:
                - ber_write_universal_tag
                - ber_write_length
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked
                - ber_write_universal_tag
                - ber_write_length
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked
                - ber_write_universal_tag
                - ber_write_length
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked
                - ber_write_universal_tag
                - ber_write_length
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked
        - Branch String:   'libfreerdp/crypto/ber.c:647,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:647,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:647,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:647,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:647,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:647,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
        - Branch String:   'libfreerdp/crypto/ber.c:647,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:647,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:647,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
        - Branch String:   'libfreerdp/crypto/ber.c:647,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:647,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:647,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:647,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:647,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:647,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:647,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:647,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:647,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:647,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:647,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:647,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:647,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:647,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:647,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
        - Branch String:   'libfreerdp/crypto/ber.c:647,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:647,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:647,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
        - Branch String:   'libfreerdp/crypto/ber.c:647,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:647,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:647,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:647,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:647,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:647,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:647,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:647,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:647,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:647,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:647,3'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:647,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:647,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:647,3'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:647,3'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
        - Branch String:   'libfreerdp/crypto/ber.c:647,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:647,3'
              BranchSideFuncs:
                - Stream_Write_UINT8_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:647,3'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
        - Branch String:   'libfreerdp/crypto/ber.c:647,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:647,3'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:647,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:647,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:647,3'
              BranchSideFuncs:
                - Stream_Write_UINT8_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:647,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:650,11'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:652,27'
              BranchSideFuncs:
                - ber_write_universal_tag
                - ber_write_length
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:658,11'
              BranchSideFuncs:
                - ber_write_universal_tag
                - ber_write_length
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked
                - ber_write_universal_tag
                - ber_write_length
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked
                - ber_write_universal_tag
                - ber_write_length
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked
        - Branch String:   'libfreerdp/crypto/ber.c:655,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:655,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:655,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:655,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:655,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:655,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked
        - Branch String:   'libfreerdp/crypto/ber.c:655,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:655,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:655,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked
        - Branch String:   'libfreerdp/crypto/ber.c:655,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:655,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:655,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:655,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:655,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:655,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:655,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:655,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:655,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:655,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:655,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:655,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:655,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:655,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:655,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked
        - Branch String:   'libfreerdp/crypto/ber.c:655,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:655,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:655,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked
        - Branch String:   'libfreerdp/crypto/ber.c:655,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:655,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:655,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:655,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:655,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:655,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:655,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:655,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:655,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:655,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:655,3'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:655,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:655,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:655,3'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:655,3'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked
        - Branch String:   'libfreerdp/crypto/ber.c:655,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:655,3'
              BranchSideFuncs:
                - Stream_Write_UINT16_BE_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:655,3'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked
        - Branch String:   'libfreerdp/crypto/ber.c:655,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:655,3'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:655,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:655,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:655,3'
              BranchSideFuncs:
                - Stream_Write_UINT16_BE_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:655,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:658,11'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:660,27'
              BranchSideFuncs:
                - ber_write_universal_tag
                - ber_write_length
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:667,11'
              BranchSideFuncs:
                - ber_write_universal_tag
                - ber_write_length
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked
                - ber_write_universal_tag
                - ber_write_length
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked
        - Branch String:   'libfreerdp/crypto/ber.c:663,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:663,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:663,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:663,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:663,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:663,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked
        - Branch String:   'libfreerdp/crypto/ber.c:663,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:663,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:663,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked
        - Branch String:   'libfreerdp/crypto/ber.c:663,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:663,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:663,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:663,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:663,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:663,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:663,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:663,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:663,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:663,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:663,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:663,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:663,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:663,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:663,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked
        - Branch String:   'libfreerdp/crypto/ber.c:663,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:663,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:663,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked
        - Branch String:   'libfreerdp/crypto/ber.c:663,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:663,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:663,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:663,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:663,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:663,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:663,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:663,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:663,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:663,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:663,3'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:663,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:663,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:663,3'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:663,3'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked
        - Branch String:   'libfreerdp/crypto/ber.c:663,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:663,3'
              BranchSideFuncs:
                - Stream_Write_UINT8_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:663,3'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked
        - Branch String:   'libfreerdp/crypto/ber.c:663,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:663,3'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:663,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:663,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:663,3'
              BranchSideFuncs:
                - Stream_Write_UINT8_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:663,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:664,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:664,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:664,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:664,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:664,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:664,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked
        - Branch String:   'libfreerdp/crypto/ber.c:664,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:664,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:664,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked
        - Branch String:   'libfreerdp/crypto/ber.c:664,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:664,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:664,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:664,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:664,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:664,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:664,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:664,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:664,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:664,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:664,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:664,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:664,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:664,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:664,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked
        - Branch String:   'libfreerdp/crypto/ber.c:664,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:664,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:664,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked
        - Branch String:   'libfreerdp/crypto/ber.c:664,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:664,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:664,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:664,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:664,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:664,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:664,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:664,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:664,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:664,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:664,3'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:664,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:664,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:664,3'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:664,3'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked
        - Branch String:   'libfreerdp/crypto/ber.c:664,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:664,3'
              BranchSideFuncs:
                - Stream_Write_UINT16_BE_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:664,3'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked
        - Branch String:   'libfreerdp/crypto/ber.c:664,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:664,3'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:664,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:664,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:664,3'
              BranchSideFuncs:
                - Stream_Write_UINT16_BE_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:664,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:667,11'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:669,27'
              BranchSideFuncs:
                - ber_write_universal_tag
                - ber_write_length
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:678,27'
              BranchSideFuncs:
                - ber_write_universal_tag
                - ber_write_length
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked
        - Branch String:   'libfreerdp/crypto/ber.c:672,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:672,3'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:672,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:672,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:672,3'
              BranchSideFuncs:
                - Stream_Write_UINT32_BE_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:672,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:681,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:681,3'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:681,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:681,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:681,3'
              BranchSideFuncs:
                - Stream_Write_UINT32_BE_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:681,3'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:640,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:644,3'
          Dst:             ber_write_universal_tag
        - Src:             'libfreerdp/crypto/ber.c:645,3'
          Dst:             ber_write_length
        - Src:             'libfreerdp/crypto/ber.c:647,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:647,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:647,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:647,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:647,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:647,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:647,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:647,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:647,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/crypto/ber.c:652,3'
          Dst:             ber_write_universal_tag
        - Src:             'libfreerdp/crypto/ber.c:653,3'
          Dst:             ber_write_length
        - Src:             'libfreerdp/crypto/ber.c:655,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:655,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:655,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:655,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:655,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:655,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:655,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:655,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:655,3'
          Dst:             Stream_Write_UINT16_BE_unchecked
        - Src:             'libfreerdp/crypto/ber.c:660,3'
          Dst:             ber_write_universal_tag
        - Src:             'libfreerdp/crypto/ber.c:661,3'
          Dst:             ber_write_length
        - Src:             'libfreerdp/crypto/ber.c:663,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:663,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:663,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:663,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:663,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:663,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:663,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:663,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:663,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/crypto/ber.c:664,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:664,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:664,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:664,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:664,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:664,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:664,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:664,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:664,3'
          Dst:             Stream_Write_UINT16_BE_unchecked
        - Src:             'libfreerdp/crypto/ber.c:669,3'
          Dst:             ber_write_universal_tag
        - Src:             'libfreerdp/crypto/ber.c:670,3'
          Dst:             ber_write_length
        - Src:             'libfreerdp/crypto/ber.c:672,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:672,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:672,3'
          Dst:             Stream_Write_UINT32_BE_unchecked
        - Src:             'libfreerdp/crypto/ber.c:678,3'
          Dst:             ber_write_universal_tag
        - Src:             'libfreerdp/crypto/ber.c:679,3'
          Dst:             ber_write_length
        - Src:             'libfreerdp/crypto/ber.c:681,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:681,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:681,3'
          Dst:             Stream_Write_UINT32_BE_unchecked
    - functionName:    ber_write_universal_tag
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 152
      functionLinenumberEnd: 155
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - char
        - int
      constantsTouched: []
      argNames:
        - s
        - tag
        - pc
      BBCount:         23
      ICount:          94
      EdgeCount:       23
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_Write_UINT8_unchecked
        - winpr_int_assert
      functionUses:    11
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/ber.c:153,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:153,2'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:153,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:154,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:154,2'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:154,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:154,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:154,2'
              BranchSideFuncs:
                - Stream_Write_UINT8_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:154,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:153,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:154,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:154,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:154,2'
          Dst:             Stream_Write_UINT8_unchecked
    - functionName:    ber_write_length
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 77
      functionLinenumberEnd: 101
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - s
        - length
      BBCount:         106
      ICount:          254
      EdgeCount:       108
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_GetRemainingCapacity
        - Stream_Write_UINT16_BE_unchecked
        - Stream_Write_UINT8_unchecked
        - winpr_int_assert
      functionUses:    15
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/ber.c:78,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:78,2'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_GetRemainingCapacity
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
                - Stream_GetRemainingCapacity
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
                - winpr_int_assert
                - Stream_GetRemainingCapacity
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:78,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:80,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:82,3'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_GetRemainingCapacity
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:89,2'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_GetRemainingCapacity
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
                - Stream_GetRemainingCapacity
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
        - Branch String:   'libfreerdp/crypto/ber.c:82,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:82,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:82,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:83,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:83,3'
              BranchSideFuncs:
                - Stream_Write_UINT8_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:83,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:85,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:85,3'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:85,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:85,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:85,3'
              BranchSideFuncs:
                - Stream_Write_UINT16_BE_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:85,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:89,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:89,2'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
                - Stream_GetRemainingCapacity
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:89,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:90,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:92,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:98,2'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
        - Branch String:   'libfreerdp/crypto/ber.c:92,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:92,3'
              BranchSideFuncs:
                - Stream_Write_UINT8_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:92,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:94,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:94,3'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:94,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:94,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:94,3'
              BranchSideFuncs:
                - Stream_Write_UINT8_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:94,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:98,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:98,2'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:98,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:99,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:99,2'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:99,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:99,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:99,2'
              BranchSideFuncs:
                - Stream_Write_UINT8_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:99,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:78,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:82,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:83,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'libfreerdp/crypto/ber.c:83,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:84,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/crypto/ber.c:85,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:85,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:85,3'
          Dst:             Stream_Write_UINT16_BE_unchecked
        - Src:             'libfreerdp/crypto/ber.c:89,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:92,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'libfreerdp/crypto/ber.c:92,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:93,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/crypto/ber.c:94,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:94,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:94,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/crypto/ber.c:98,2'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'libfreerdp/crypto/ber.c:98,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:99,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:99,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:99,2'
          Dst:             Stream_Write_UINT8_unchecked
    - functionName:    Stream_Write_UINT8_unchecked
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 840
      functionLinenumberEnd: 847
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - _s
        - _v
      BBCount:         21
      ICount:          70
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - winpr_Data_Write_UINT8
        - winpr_int_assert
      functionUses:    14
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:841,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:841,3'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_GetRemainingCapacity
                - winpr_int_assert
                - winpr_Data_Write_UINT8
            - BranchSide:      'winpr/include/winpr/stream.h:841,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:842,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:842,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - winpr_int_assert
                - winpr_Data_Write_UINT8
            - BranchSide:      'winpr/include/winpr/stream.h:842,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:843,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:843,3'
              BranchSideFuncs:
                - winpr_Data_Write_UINT8
            - BranchSide:      'winpr/include/winpr/stream.h:843,3'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:841,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:842,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:843,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:843,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:845,3'
          Dst:             winpr_Data_Write_UINT8
    - functionName:    Stream_Write_UINT16_BE_unchecked
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 918
      functionLinenumberEnd: 925
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - _s
        - _v
      BBCount:         21
      ICount:          70
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - winpr_Data_Write_UINT16_BE
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:919,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:919,3'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_GetRemainingCapacity
                - winpr_int_assert
                - winpr_Data_Write_UINT16_BE
            - BranchSide:      'winpr/include/winpr/stream.h:919,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:920,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:920,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - winpr_int_assert
                - winpr_Data_Write_UINT16_BE
            - BranchSide:      'winpr/include/winpr/stream.h:920,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:921,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:921,3'
              BranchSideFuncs:
                - winpr_Data_Write_UINT16_BE
            - BranchSide:      'winpr/include/winpr/stream.h:921,3'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:919,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:920,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:921,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:921,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:923,3'
          Dst:             winpr_Data_Write_UINT16_BE
    - functionName:    Stream_Write_UINT32_BE_unchecked
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1080
      functionLinenumberEnd: 1085
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - _s
        - _v
      BBCount:         9
      ICount:          44
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - winpr_Data_Write_UINT32_BE
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:1081,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:1081,3'
              BranchSideFuncs:
                - winpr_Data_Write_UINT32_BE
            - BranchSide:      'winpr/include/winpr/stream.h:1081,3'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1081,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:1081,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1083,3'
          Dst:             winpr_Data_Write_UINT32_BE
    - functionName:    stream_read_u32_be
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 223
      functionLinenumberEnd: 231
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - _s
        - seek
      BBCount:         18
      ICount:          68
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_GetRemainingLength
        - Stream_Seek
        - winpr_Data_Get_UINT32_BE
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:225,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:225,3'
              BranchSideFuncs:
                - Stream_GetRemainingLength
                - winpr_int_assert
                - winpr_Data_Get_UINT32_BE
                - Stream_Seek.303
            - BranchSide:      'winpr/include/winpr/stream.h:225,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:226,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:226,3'
              BranchSideFuncs:
                - winpr_Data_Get_UINT32_BE
                - Stream_Seek.303
            - BranchSide:      'winpr/include/winpr/stream.h:226,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:229,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:229,7'
              BranchSideFuncs:
                - Stream_Seek.303
            - BranchSide:      'winpr/include/winpr/stream.h:230,16'
              BranchSideFuncs:
                - Stream_Seek.303
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:225,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:226,3'
          Dst:             Stream_GetRemainingLength
        - Src:             'winpr/include/winpr/stream.h:226,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:228,20'
          Dst:             winpr_Data_Get_UINT32_BE
        - Src:             'winpr/include/winpr/stream.h:230,4'
          Dst:             Stream_Seek
    - functionName:    ber_read_integer
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 578
      functionLinenumberEnd: 627
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - value
      BBCount:         42
      ICount:          173
      EdgeCount:       51
      CyclomaticComplexity: 11
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_SafeSeekEx
        - WLog_Print_dbg_tag
        - ber_read_length
        - ber_read_universal_tag
        - stream_read_u16_be
        - stream_read_u32_be
        - stream_read_u8
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/ber.c:581,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:581,2'
              BranchSideFuncs:
                - ber_read_universal_tag
                - ber_read_length
                - Stream_CheckAndLogRequiredLengthEx
                - WLog_Print_dbg_tag.298
                - WLog_Print_dbg_tag.298
                - stream_read_u32_be
                - stream_read_u8.296
                - stream_read_u16_be
                - stream_read_u16_be
                - stream_read_u8.296
                - Stream_SafeSeekEx
            - BranchSide:      'libfreerdp/crypto/ber.c:581,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:583,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:584,3'
              BranchSideFuncs:
                - ber_read_length
                - Stream_CheckAndLogRequiredLengthEx
                - WLog_Print_dbg_tag.298
                - WLog_Print_dbg_tag.298
                - stream_read_u32_be
                - stream_read_u8.296
                - stream_read_u16_be
                - stream_read_u16_be
                - stream_read_u8.296
                - Stream_SafeSeekEx
            - BranchSide:      'libfreerdp/crypto/ber.c:585,23'
              BranchSideFuncs:
                - ber_read_length
                - Stream_CheckAndLogRequiredLengthEx
                - WLog_Print_dbg_tag.298
                - WLog_Print_dbg_tag.298
                - stream_read_u32_be
                - stream_read_u8.296
                - stream_read_u16_be
                - stream_read_u16_be
                - stream_read_u8.296
                - Stream_SafeSeekEx
        - Branch String:   'libfreerdp/crypto/ber.c:585,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:586,3'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthEx
                - WLog_Print_dbg_tag.298
                - WLog_Print_dbg_tag.298
                - stream_read_u32_be
                - stream_read_u8.296
                - stream_read_u16_be
                - stream_read_u16_be
                - stream_read_u8.296
                - Stream_SafeSeekEx
            - BranchSide:      'libfreerdp/crypto/ber.c:587,7'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthEx
                - WLog_Print_dbg_tag.298
                - WLog_Print_dbg_tag.298
                - stream_read_u32_be
                - stream_read_u8.296
                - stream_read_u16_be
                - stream_read_u16_be
                - stream_read_u8.296
                - Stream_SafeSeekEx
        - Branch String:   'libfreerdp/crypto/ber.c:587,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:588,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.298
                - WLog_Print_dbg_tag.298
                - stream_read_u32_be
                - stream_read_u8.296
                - stream_read_u16_be
                - stream_read_u16_be
                - stream_read_u8.296
                - Stream_SafeSeekEx
            - BranchSide:      'libfreerdp/crypto/ber.c:590,6'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.298
                - WLog_Print_dbg_tag.298
                - stream_read_u32_be
                - stream_read_u8.296
                - stream_read_u16_be
                - stream_read_u16_be
                - stream_read_u8.296
                - Stream_SafeSeekEx
        - Branch String:   'libfreerdp/crypto/ber.c:590,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:593,10'
              BranchSideFuncs:
                - Stream_SafeSeekEx
            - BranchSide:      'libfreerdp/crypto/ber.c:596,6'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.298
                - WLog_Print_dbg_tag.298
                - stream_read_u32_be
                - stream_read_u8.296
                - stream_read_u16_be
                - stream_read_u16_be
                - stream_read_u8.296
        - Branch String:   'libfreerdp/crypto/ber.c:596,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:598,3'
              BranchSideFuncs:
                - stream_read_u8.296
            - BranchSide:      'libfreerdp/crypto/ber.c:600,11'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.298
                - WLog_Print_dbg_tag.298
                - stream_read_u32_be
                - stream_read_u8.296
                - stream_read_u16_be
                - stream_read_u16_be
        - Branch String:   'libfreerdp/crypto/ber.c:600,11'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:602,3'
              BranchSideFuncs:
                - stream_read_u16_be
            - BranchSide:      'libfreerdp/crypto/ber.c:604,11'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.298
                - WLog_Print_dbg_tag.298
                - stream_read_u32_be
                - stream_read_u8.296
                - stream_read_u16_be
        - Branch String:   'libfreerdp/crypto/ber.c:604,11'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:606,8'
              BranchSideFuncs:
                - stream_read_u8.296
                - stream_read_u16_be
            - BranchSide:      'libfreerdp/crypto/ber.c:611,11'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.298
                - WLog_Print_dbg_tag.298
                - stream_read_u32_be
        - Branch String:   'libfreerdp/crypto/ber.c:611,11'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:613,3'
              BranchSideFuncs:
                - stream_read_u32_be
            - BranchSide:      'libfreerdp/crypto/ber.c:615,11'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.298
                - WLog_Print_dbg_tag.298
        - Branch String:   'libfreerdp/crypto/ber.c:615,11'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:617,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.298
            - BranchSide:      'libfreerdp/crypto/ber.c:622,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.298
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:581,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:583,7'
          Dst:             ber_read_universal_tag
        - Src:             'libfreerdp/crypto/ber.c:585,7'
          Dst:             ber_read_length
        - Src:             'libfreerdp/crypto/ber.c:587,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/ber.c:593,10'
          Dst:             Stream_SafeSeekEx
        - Src:             'libfreerdp/crypto/ber.c:598,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/crypto/ber.c:602,3'
          Dst:             stream_read_u16_be
        - Src:             'libfreerdp/crypto/ber.c:607,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/crypto/ber.c:608,3'
          Dst:             stream_read_u16_be
        - Src:             'libfreerdp/crypto/ber.c:613,3'
          Dst:             stream_read_u32_be
        - Src:             'libfreerdp/crypto/ber.c:617,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/ber.c:622,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    ber_write_BOOL
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 571
      functionLinenumberEnd: 575
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - s
        - value
      BBCount:         17
      ICount:          68
      EdgeCount:       17
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_Write_UINT8_unchecked
        - ber_write_length
        - ber_write_universal_tag
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/ber.c:574,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:574,2'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:574,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:574,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:574,2'
              BranchSideFuncs:
                - Stream_Write_UINT8_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:574,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:572,2'
          Dst:             ber_write_universal_tag
        - Src:             'libfreerdp/crypto/ber.c:573,2'
          Dst:             ber_write_length
        - Src:             'libfreerdp/crypto/ber.c:574,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:574,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:574,2'
          Dst:             Stream_Write_UINT8_unchecked
    - functionName:    ber_read_BOOL
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 542
      functionLinenumberEnd: 561
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - value
      BBCount:         21
      ICount:          96
      EdgeCount:       25
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - WLog_Print_dbg_tag
        - ber_read_length
        - ber_read_universal_tag
        - stream_read_u8
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/ber.c:546,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:546,2'
              BranchSideFuncs:
                - ber_read_universal_tag
                - ber_read_length
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8.296
                - WLog_Print_dbg_tag.298
            - BranchSide:      'libfreerdp/crypto/ber.c:546,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:547,57'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:547,77'
              BranchSideFuncs:
                - ber_read_length
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8.296
                - WLog_Print_dbg_tag.298
            - BranchSide:      'libfreerdp/crypto/ber.c:548,3'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/ber.c:547,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:548,3'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8.296
                - WLog_Print_dbg_tag.298
            - BranchSide:      'libfreerdp/crypto/ber.c:550,6'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8.296
                - WLog_Print_dbg_tag.298
        - Branch String:   'libfreerdp/crypto/ber.c:550,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:552,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.298
            - BranchSide:      'libfreerdp/crypto/ber.c:555,7'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8.296
        - Branch String:   'libfreerdp/crypto/ber.c:555,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:556,3'
              BranchSideFuncs:
                - stream_read_u8.296
            - BranchSide:      'libfreerdp/crypto/ber.c:558,2'
              BranchSideFuncs:
                - stream_read_u8.296
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:546,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:547,7'
          Dst:             ber_read_universal_tag
        - Src:             'libfreerdp/crypto/ber.c:547,61'
          Dst:             ber_read_length
        - Src:             'libfreerdp/crypto/ber.c:552,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/ber.c:555,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/ber.c:558,2'
          Dst:             stream_read_u8
    - functionName:    ber_sizeof_contextual_octet_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 528
      functionLinenumberEnd: 530
      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:529,15'
          Dst:             ber_sizeof_octet_string
        - Src:             'libfreerdp/crypto/ber.c:530,9'
          Dst:             ber_sizeof_contextual_tag
    - functionName:    ber_sizeof_octet_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 523
      functionLinenumberEnd: 524
      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:524,13'
          Dst:             _ber_sizeof_length
    - functionName:    ber_write_octet_string_tag
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 516
      functionLinenumberEnd: 519
      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:517,2'
          Dst:             ber_write_universal_tag
        - Src:             'libfreerdp/crypto/ber.c:518,2'
          Dst:             ber_write_length
        - Src:             'libfreerdp/crypto/ber.c:519,13'
          Dst:             _ber_sizeof_length
    - functionName:    Stream_Read
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 699
      functionLinenumberEnd: 705
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - _s
        - _b
        - _n
      BBCount:         24
      ICount:          83
      EdgeCount:       25
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_GetRemainingCapacity
        - Stream_Seek
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:700,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:700,3'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_GetRemainingCapacity
                - winpr_int_assert
                - Stream_Seek.303
            - BranchSide:      'winpr/include/winpr/stream.h:700,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:701,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:701,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - winpr_int_assert
                - Stream_Seek.303
            - BranchSide:      'winpr/include/winpr/stream.h:701,3'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_GetRemainingCapacity
                - winpr_int_assert
                - Stream_Seek.303
        - Branch String:   'winpr/include/winpr/stream.h:701,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:701,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - winpr_int_assert
                - Stream_Seek.303
            - BranchSide:      'winpr/include/winpr/stream.h:701,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:702,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:702,3'
              BranchSideFuncs:
                - Stream_Seek.303
            - BranchSide:      'winpr/include/winpr/stream.h:702,3'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:700,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:701,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:702,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:702,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:704,3'
          Dst:             Stream_Seek
    - functionName:    ber_read_octet_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 494
      functionLinenumberEnd: 513
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - content
        - length
      BBCount:         28
      ICount:          109
      EdgeCount:       31
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_Read
        - ber_read_octet_string_tag
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/ber.c:497,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:497,2'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - ber_read_octet_string_tag
                - Stream_CheckAndLogRequiredLengthEx
                - malloc
                - Stream_Read.351
            - BranchSide:      'libfreerdp/crypto/ber.c:497,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:498,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:498,2'
              BranchSideFuncs:
                - winpr_int_assert
                - ber_read_octet_string_tag
                - Stream_CheckAndLogRequiredLengthEx
                - malloc
                - Stream_Read.351
            - BranchSide:      'libfreerdp/crypto/ber.c:498,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:499,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:499,2'
              BranchSideFuncs:
                - ber_read_octet_string_tag
                - Stream_CheckAndLogRequiredLengthEx
                - malloc
                - Stream_Read.351
            - BranchSide:      'libfreerdp/crypto/ber.c:499,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:501,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:502,3'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthEx
                - malloc
                - Stream_Read.351
            - BranchSide:      'libfreerdp/crypto/ber.c:503,7'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthEx
                - malloc
                - Stream_Read.351
        - Branch String:   'libfreerdp/crypto/ber.c:503,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:504,3'
              BranchSideFuncs:
                - malloc
                - Stream_Read.351
            - BranchSide:      'libfreerdp/crypto/ber.c:506,16'
              BranchSideFuncs:
                - malloc
                - Stream_Read.351
        - Branch String:   'libfreerdp/crypto/ber.c:507,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:508,3'
              BranchSideFuncs:
                - Stream_Read.351
            - BranchSide:      'libfreerdp/crypto/ber.c:510,14'
              BranchSideFuncs:
                - Stream_Read.351
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:497,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:498,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:499,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:501,7'
          Dst:             ber_read_octet_string_tag
        - Src:             'libfreerdp/crypto/ber.c:503,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/ber.c:510,2'
          Dst:             Stream_Read
    - functionName:    ber_read_octet_string_tag
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 489
      functionLinenumberEnd: 490
      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_length
        - ber_read_universal_tag
      functionUses:    3
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/ber.c:490,64'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:490,83'
              BranchSideFuncs:
                - ber_read_length
            - BranchSide:      'libfreerdp/crypto/ber.c:490,64'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:490,9'
          Dst:             ber_read_universal_tag
        - Src:             'libfreerdp/crypto/ber.c:490,67'
          Dst:             ber_read_length
    - functionName:    ber_read_char_from_unicode_octet_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 473
      functionLinenumberEnd: 486
      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:478,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:479,3'
              BranchSideFuncs:
                - Stream_Read_UTF16_String_As_UTF8
            - BranchSide:      'libfreerdp/crypto/ber.c:481,41'
              BranchSideFuncs:
                - Stream_Read_UTF16_String_As_UTF8
        - Branch String:   'libfreerdp/crypto/ber.c:482,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:483,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/ber.c:484,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:478,7'
          Dst:             ber_read_octet_string_tag
        - Src:             'libfreerdp/crypto/ber.c:481,8'
          Dst:             Stream_Read_UTF16_String_As_UTF8
    - functionName:    Stream_ConstPointer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1264
      functionLinenumberEnd: 1266
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - _s
      BBCount:         9
      ICount:          32
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:1265,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:1265,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/stream.h:1265,3'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1265,3'
          Dst:             winpr_int_assert
    - functionName:    ber_read_unicode_octet_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 451
      functionLinenumberEnd: 470
      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:455,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:456,3'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthEx
                - calloc
                - Stream_ConstPointer
                - Stream_Seek.303
            - BranchSide:      'libfreerdp/crypto/ber.c:458,7'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthEx
                - calloc
                - Stream_ConstPointer
                - Stream_Seek.303
        - Branch String:   'libfreerdp/crypto/ber.c:458,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:459,3'
              BranchSideFuncs:
                - calloc
                - Stream_ConstPointer
                - Stream_Seek.303
            - BranchSide:      'libfreerdp/crypto/ber.c:461,18'
              BranchSideFuncs:
                - calloc
                - Stream_ConstPointer
                - Stream_Seek.303
        - Branch String:   'libfreerdp/crypto/ber.c:462,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:463,3'
              BranchSideFuncs:
                - Stream_ConstPointer
                - Stream_Seek.303
            - BranchSide:      'libfreerdp/crypto/ber.c:465,9'
              BranchSideFuncs:
                - Stream_ConstPointer
                - Stream_Seek.303
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:455,7'
          Dst:             ber_read_octet_string_tag
        - Src:             'libfreerdp/crypto/ber.c:458,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/ber.c:461,8'
          Dst:             calloc
        - Src:             'libfreerdp/crypto/ber.c:465,14'
          Dst:             Stream_ConstPointer
        - Src:             'libfreerdp/crypto/ber.c:467,2'
          Dst:             Stream_Seek
    - functionName:    ber_write_contextual_char_to_unicode_octet_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 433
      functionLinenumberEnd: 448
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - tag
        - str
      BBCount:         12
      ICount:          92
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_GetRemainingCapacity
        - Stream_Write_UTF16_String_From_UTF8
        - ber_sizeof_contextual_tag
        - ber_sizeof_octet_string
        - ber_write_contextual_tag
        - ber_write_length
        - ber_write_universal_tag
        - strlen
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/ber.c:438,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:438,2'
              BranchSideFuncs:
                - ber_write_contextual_tag
                - ber_write_universal_tag
                - ber_write_length
                - Stream_Write_UTF16_String_From_UTF8
            - BranchSide:      'libfreerdp/crypto/ber.c:438,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:444,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:445,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/ber.c:447,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:435,15'
          Dst:             strlen
        - Src:             'libfreerdp/crypto/ber.c:436,21'
          Dst:             ber_sizeof_octet_string
        - Src:             'libfreerdp/crypto/ber.c:438,2'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'libfreerdp/crypto/ber.c:438,2'
          Dst:             ber_sizeof_contextual_tag
        - Src:             'libfreerdp/crypto/ber.c:438,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:440,8'
          Dst:             ber_write_contextual_tag
        - Src:             'libfreerdp/crypto/ber.c:441,9'
          Dst:             ber_write_universal_tag
        - Src:             'libfreerdp/crypto/ber.c:442,9'
          Dst:             ber_write_length
        - Src:             'libfreerdp/crypto/ber.c:444,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: 422
      functionLinenumberEnd: 429
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - tag
        - str
      BBCount:         9
      ICount:          60
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - _wcslen
        - ber_sizeof_octet_string
        - ber_write_contextual_tag
        - ber_write_octet_string
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/ber.c:423,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:423,2'
              BranchSideFuncs:
                - _wcslen
                - ber_sizeof_octet_string
                - ber_write_contextual_tag
                - ber_write_octet_string
            - BranchSide:      'libfreerdp/crypto/ber.c:423,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:423,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:424,15'
          Dst:             _wcslen
        - Src:             'libfreerdp/crypto/ber.c:425,21'
          Dst:             ber_sizeof_octet_string
        - Src:             'libfreerdp/crypto/ber.c:428,8'
          Dst:             ber_write_contextual_tag
        - Src:             'libfreerdp/crypto/ber.c:429,15'
          Dst:             ber_write_octet_string
    - functionName:    ber_write_octet_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 381
      functionLinenumberEnd: 389
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - s
        - oct_str
        - length
      BBCount:         12
      ICount:          70
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_Write
        - ber_write_length
        - ber_write_universal_tag
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/ber.c:384,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:384,2'
              BranchSideFuncs:
                - ber_write_universal_tag
                - ber_write_length
                - Stream_Write.359
            - BranchSide:      'libfreerdp/crypto/ber.c:384,2'
              BranchSideFuncs:
                - winpr_int_assert
                - ber_write_universal_tag
                - ber_write_length
                - Stream_Write.359
        - Branch String:   'libfreerdp/crypto/ber.c:384,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:384,2'
              BranchSideFuncs:
                - ber_write_universal_tag
                - ber_write_length
                - Stream_Write.359
            - BranchSide:      'libfreerdp/crypto/ber.c:384,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:384,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:385,10'
          Dst:             ber_write_universal_tag
        - Src:             'libfreerdp/crypto/ber.c:386,10'
          Dst:             ber_write_length
        - Src:             'libfreerdp/crypto/ber.c:387,2'
          Dst:             Stream_Write
    - functionName:    Stream_Write
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1154
      functionLinenumberEnd: 1163
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - _s
        - _b
        - _n
      BBCount:         24
      ICount:          80
      EdgeCount:       25
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_GetRemainingCapacity
        - Stream_Seek
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:1155,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:1155,7'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - Stream_GetRemainingCapacity
                - winpr_int_assert
                - Stream_Seek.303
            - BranchSide:      'winpr/include/winpr/stream.h:1157,4'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - Stream_GetRemainingCapacity
                - winpr_int_assert
                - Stream_Seek.303
        - Branch String:   'winpr/include/winpr/stream.h:1157,4'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:1157,4'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_GetRemainingCapacity
                - winpr_int_assert
                - Stream_Seek.303
            - BranchSide:      'winpr/include/winpr/stream.h:1157,4'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:1158,4'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:1158,4'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - winpr_int_assert
                - Stream_Seek.303
            - BranchSide:      'winpr/include/winpr/stream.h:1158,4'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:1159,4'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:1159,4'
              BranchSideFuncs:
                - Stream_Seek.303
            - BranchSide:      'winpr/include/winpr/stream.h:1159,4'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1157,4'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1158,4'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1159,4'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:1159,4'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1161,4'
          Dst:             Stream_Seek
    - functionName:    ber_write_char_to_unicode_octet_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 409
      functionLinenumberEnd: 419
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - str
      BBCount:         12
      ICount:          74
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_Write_UTF16_String_From_UTF8
        - ber_write_length
        - ber_write_universal_tag
        - strlen
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/ber.c:410,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:410,2'
              BranchSideFuncs:
                - strlen
                - ber_write_universal_tag
                - ber_write_length
                - Stream_Write_UTF16_String_From_UTF8
            - BranchSide:      'libfreerdp/crypto/ber.c:410,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:416,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:417,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/ber.c:418,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:410,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:412,18'
          Dst:             strlen
        - Src:             'libfreerdp/crypto/ber.c:413,10'
          Dst:             ber_write_universal_tag
        - Src:             'libfreerdp/crypto/ber.c:414,10'
          Dst:             ber_write_length
        - Src:             'libfreerdp/crypto/ber.c:416,6'
          Dst:             Stream_Write_UTF16_String_From_UTF8
    - functionName:    ber_write_contextual_octet_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 393
      functionLinenumberEnd: 406
      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:399,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:400,3'
              BranchSideFuncs:
                - ber_write_octet_string
            - BranchSide:      'libfreerdp/crypto/ber.c:402,29'
              BranchSideFuncs:
                - ber_write_octet_string
        - Branch String:   'libfreerdp/crypto/ber.c:403,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:404,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/ber.c:405,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:394,17'
          Dst:             ber_sizeof_octet_string
        - Src:             'libfreerdp/crypto/ber.c:398,8'
          Dst:             ber_write_contextual_tag
        - Src:             'libfreerdp/crypto/ber.c:402,6'
          Dst:             ber_write_octet_string
    - functionName:    ber_read_bit_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 362
      functionLinenumberEnd: 371
      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_length
        - ber_read_universal_tag
        - stream_read_u8
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/ber.c:363,60'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:363,80'
              BranchSideFuncs:
                - ber_read_length
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8.296
            - BranchSide:      'libfreerdp/crypto/ber.c:364,3'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/ber.c:363,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:364,3'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8.296
            - BranchSide:      'libfreerdp/crypto/ber.c:366,7'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8.296
        - Branch String:   'libfreerdp/crypto/ber.c:366,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:367,3'
              BranchSideFuncs:
                - stream_read_u8.296
            - BranchSide:      'libfreerdp/crypto/ber.c:369,2'
              BranchSideFuncs:
                - stream_read_u8.296
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:363,7'
          Dst:             ber_read_universal_tag
        - Src:             'libfreerdp/crypto/ber.c:363,64'
          Dst:             ber_read_length
        - Src:             'libfreerdp/crypto/ber.c:366,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/ber.c:369,2'
          Dst:             stream_read_u8
    - functionName:    ber_write_enumerated
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 355
      functionLinenumberEnd: 359
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - char
        - char
      constantsTouched: []
      argNames:
        - s
        - enumerated
        - count
      BBCount:         17
      ICount:          60
      EdgeCount:       17
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_Write_UINT8_unchecked
        - ber_write_length
        - ber_write_universal_tag
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/ber.c:358,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:358,2'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:358,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:358,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:358,2'
              BranchSideFuncs:
                - Stream_Write_UINT8_unchecked
            - BranchSide:      'libfreerdp/crypto/ber.c:358,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:356,2'
          Dst:             ber_write_universal_tag
        - Src:             'libfreerdp/crypto/ber.c:357,2'
          Dst:             ber_write_length
        - Src:             'libfreerdp/crypto/ber.c:358,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:358,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:358,2'
          Dst:             Stream_Write_UINT8_unchecked
    - functionName:    ber_read_enumerated
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 326
      functionLinenumberEnd: 352
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - s
        - enumerated
        - count
      BBCount:         23
      ICount:          109
      EdgeCount:       28
      CyclomaticComplexity: 7
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - WLog_Print_dbg_tag
        - ber_read_length
        - ber_read_universal_tag
        - stream_read_u8
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/ber.c:329,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:329,2'
              BranchSideFuncs:
                - ber_read_universal_tag
                - ber_read_length
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8.296
                - WLog_Print_dbg_tag.298
                - WLog_Print_dbg_tag.298
            - BranchSide:      'libfreerdp/crypto/ber.c:329,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:331,60'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:331,80'
              BranchSideFuncs:
                - ber_read_length
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8.296
                - WLog_Print_dbg_tag.298
                - WLog_Print_dbg_tag.298
            - BranchSide:      'libfreerdp/crypto/ber.c:332,3'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/ber.c:331,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:332,3'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8.296
                - WLog_Print_dbg_tag.298
                - WLog_Print_dbg_tag.298
            - BranchSide:      'libfreerdp/crypto/ber.c:334,6'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8.296
                - WLog_Print_dbg_tag.298
                - WLog_Print_dbg_tag.298
        - Branch String:   'libfreerdp/crypto/ber.c:334,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:336,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.298
            - BranchSide:      'libfreerdp/crypto/ber.c:339,7'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8.296
                - WLog_Print_dbg_tag.298
        - Branch String:   'libfreerdp/crypto/ber.c:339,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:340,3'
              BranchSideFuncs:
                - stream_read_u8.296
                - WLog_Print_dbg_tag.298
            - BranchSide:      'libfreerdp/crypto/ber.c:342,2'
              BranchSideFuncs:
                - stream_read_u8.296
                - WLog_Print_dbg_tag.298
        - Branch String:   'libfreerdp/crypto/ber.c:345,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:347,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.298
            - BranchSide:      'libfreerdp/crypto/ber.c:351,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:329,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:331,7'
          Dst:             ber_read_universal_tag
        - Src:             'libfreerdp/crypto/ber.c:331,64'
          Dst:             ber_read_length
        - Src:             'libfreerdp/crypto/ber.c:336,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/ber.c:339,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/ber.c:342,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/crypto/ber.c:347,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    ber_sizeof_sequence_tag
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 321
      functionLinenumberEnd: 322
      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:322,13'
          Dst:             _ber_sizeof_length
    - functionName:    ber_sizeof_sequence
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 316
      functionLinenumberEnd: 317
      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:317,13'
          Dst:             _ber_sizeof_length
    - functionName:    ber_write_sequence_tag
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 310
      functionLinenumberEnd: 312
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - s
        - length
      BBCount:         13
      ICount:          36
      EdgeCount:       13
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_Write_UINT8_unchecked
        - ber_write_length
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:311,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/crypto/ber.c:312,13'
          Dst:             ber_write_length
    - functionName:    ber_read_sequence_tag
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 285
      functionLinenumberEnd: 301
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - length
      BBCount:         10
      ICount:          61
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - WLog_Print_dbg_tag
        - ber_read_length
        - stream_read_u8
      functionUses:    9
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/ber.c:289,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:290,3'
              BranchSideFuncs:
                - stream_read_u8.296
                - ber_read_length
                - WLog_Print_dbg_tag.298
            - BranchSide:      'libfreerdp/crypto/ber.c:292,2'
              BranchSideFuncs:
                - stream_read_u8.296
                - ber_read_length
                - WLog_Print_dbg_tag.298
        - Branch String:   'libfreerdp/crypto/ber.c:294,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:296,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.298
            - BranchSide:      'libfreerdp/crypto/ber.c:300,25'
              BranchSideFuncs:
                - ber_read_length
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:289,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/ber.c:292,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/crypto/ber.c:296,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/ber.c:300,9'
          Dst:             ber_read_length
    - functionName:    Stream_Rewind
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 131
      functionLinenumberEnd: 141
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - s
        - _offset
      BBCount:         24
      ICount:          99
      EdgeCount:       25
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:133,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:133,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/include/winpr/stream.h:133,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:134,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:134,3'
              BranchSideFuncs:
                - winpr_int_assert
            - BranchSide:      'winpr/include/winpr/stream.h:134,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:136,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:136,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/stream.h:136,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:137,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:138,19'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/stream.h:140,17'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:133,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:134,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:136,3'
          Dst:             winpr_int_assert
    - functionName:    ber_read_contextual_tag
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 245
      functionLinenumberEnd: 269
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - s
        - tag
        - length
        - pc
      BBCount:         22
      ICount:          111
      EdgeCount:       24
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_GetRemainingLength
        - Stream_Rewind
        - WLog_Print_dbg_tag
        - ber_read_length
        - stream_read_u8
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/ber.c:249,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:249,2'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_GetRemainingLength
                - stream_read_u8.296
                - ber_read_length
                - WLog_Print_dbg_tag.298
                - Stream_Rewind
                - Stream_GetRemainingLength
                - WLog_Print_dbg_tag.298
            - BranchSide:      'libfreerdp/crypto/ber.c:249,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:250,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:250,2'
              BranchSideFuncs:
                - Stream_GetRemainingLength
                - stream_read_u8.296
                - ber_read_length
                - WLog_Print_dbg_tag.298
                - Stream_Rewind
                - Stream_GetRemainingLength
                - WLog_Print_dbg_tag.298
            - BranchSide:      'libfreerdp/crypto/ber.c:250,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:252,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:254,3'
              BranchSideFuncs:
                - Stream_GetRemainingLength
                - WLog_Print_dbg_tag.298
            - BranchSide:      'libfreerdp/crypto/ber.c:259,2'
              BranchSideFuncs:
                - stream_read_u8.296
                - ber_read_length
                - WLog_Print_dbg_tag.298
                - Stream_Rewind
        - Branch String:   'libfreerdp/crypto/ber.c:261,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:263,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.298
                - Stream_Rewind
            - BranchSide:      'libfreerdp/crypto/ber.c:268,25'
              BranchSideFuncs:
                - ber_read_length
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:249,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:250,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:252,6'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/crypto/ber.c:254,3'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/crypto/ber.c:254,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/ber.c:259,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/crypto/ber.c:263,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/ber.c:264,3'
          Dst:             Stream_Rewind
        - Src:             'libfreerdp/crypto/ber.c:268,9'
          Dst:             ber_read_length
    - functionName:    ber_write_application_tag
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 226
      functionLinenumberEnd: 242
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - char
        - size_t
      constantsTouched: []
      argNames:
        - s
        - tag
        - length
      BBCount:         62
      ICount:          165
      EdgeCount:       63
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_GetRemainingCapacity
        - Stream_Write_UINT8_unchecked
        - ber_write_length
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/ber.c:227,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:227,2'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
                - ber_write_length
                - Stream_GetRemainingCapacity
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
                - ber_write_length
            - BranchSide:      'libfreerdp/crypto/ber.c:227,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:229,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:231,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
                - ber_write_length
            - BranchSide:      'libfreerdp/crypto/ber.c:238,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
                - ber_write_length
        - Branch String:   'libfreerdp/crypto/ber.c:231,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:231,3'
              BranchSideFuncs:
                - Stream_Write_UINT8_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
                - ber_write_length
            - BranchSide:      'libfreerdp/crypto/ber.c:231,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:233,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:233,3'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
                - ber_write_length
            - BranchSide:      'libfreerdp/crypto/ber.c:233,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:233,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:233,3'
              BranchSideFuncs:
                - Stream_Write_UINT8_unchecked
                - ber_write_length
            - BranchSide:      'libfreerdp/crypto/ber.c:233,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:238,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:238,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
                - ber_write_length
            - BranchSide:      'libfreerdp/crypto/ber.c:238,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:239,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:239,3'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked
                - ber_write_length
            - BranchSide:      'libfreerdp/crypto/ber.c:239,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:239,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:239,3'
              BranchSideFuncs:
                - Stream_Write_UINT8_unchecked
                - ber_write_length
            - BranchSide:      'libfreerdp/crypto/ber.c:239,3'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:227,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:231,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'libfreerdp/crypto/ber.c:231,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:232,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/crypto/ber.c:233,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:233,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:233,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/crypto/ber.c:234,3'
          Dst:             ber_write_length
        - Src:             'libfreerdp/crypto/ber.c:238,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'libfreerdp/crypto/ber.c:238,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:239,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:239,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:239,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'libfreerdp/crypto/ber.c:240,3'
          Dst:             ber_write_length
    - functionName:    ber_read_application_tag
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 166
      functionLinenumberEnd: 216
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - tag
        - length
      BBCount:         34
      ICount:          163
      EdgeCount:       40
      CyclomaticComplexity: 8
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - WLog_Print_dbg_tag
        - ber_read_length
        - stream_read_u8
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/ber.c:169,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:169,2'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8.296
                - ber_read_length
                - WLog_Print_dbg_tag.298
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8.296
                - stream_read_u8.296
                - ber_read_length
                - WLog_Print_dbg_tag.298
                - WLog_Print_dbg_tag.298
            - BranchSide:      'libfreerdp/crypto/ber.c:169,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:170,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:170,2'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8.296
                - ber_read_length
                - WLog_Print_dbg_tag.298
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8.296
                - stream_read_u8.296
                - ber_read_length
                - WLog_Print_dbg_tag.298
                - WLog_Print_dbg_tag.298
            - BranchSide:      'libfreerdp/crypto/ber.c:170,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/ber.c:172,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:174,14'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8.296
                - stream_read_u8.296
                - ber_read_length
                - WLog_Print_dbg_tag.298
                - WLog_Print_dbg_tag.298
            - BranchSide:      'libfreerdp/crypto/ber.c:199,75'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8.296
                - ber_read_length
                - WLog_Print_dbg_tag.298
        - Branch String:   'libfreerdp/crypto/ber.c:176,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:177,4'
              BranchSideFuncs:
                - stream_read_u8.296
                - stream_read_u8.296
                - ber_read_length
                - WLog_Print_dbg_tag.298
                - WLog_Print_dbg_tag.298
            - BranchSide:      'libfreerdp/crypto/ber.c:179,3'
              BranchSideFuncs:
                - stream_read_u8.296
                - stream_read_u8.296
                - ber_read_length
                - WLog_Print_dbg_tag.298
                - WLog_Print_dbg_tag.298
        - Branch String:   'libfreerdp/crypto/ber.c:181,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:183,4'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.298
            - BranchSide:      'libfreerdp/crypto/ber.c:187,3'
              BranchSideFuncs:
                - stream_read_u8.296
                - ber_read_length
                - WLog_Print_dbg_tag.298
        - Branch String:   'libfreerdp/crypto/ber.c:189,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:191,4'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.298
            - BranchSide:      'libfreerdp/crypto/ber.c:195,26'
              BranchSideFuncs:
                - ber_read_length
        - Branch String:   'libfreerdp/crypto/ber.c:201,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:202,4'
              BranchSideFuncs:
                - stream_read_u8.296
                - ber_read_length
                - WLog_Print_dbg_tag.298
            - BranchSide:      'libfreerdp/crypto/ber.c:204,3'
              BranchSideFuncs:
                - stream_read_u8.296
                - ber_read_length
                - WLog_Print_dbg_tag.298
        - Branch String:   'libfreerdp/crypto/ber.c:206,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:208,4'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.298
            - BranchSide:      'libfreerdp/crypto/ber.c:212,26'
              BranchSideFuncs:
                - ber_read_length
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:169,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:170,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/ber.c:176,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/ber.c:179,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/crypto/ber.c:183,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/ber.c:187,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/crypto/ber.c:191,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/ber.c:195,10'
          Dst:             ber_read_length
        - Src:             'libfreerdp/crypto/ber.c:201,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/ber.c:204,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/crypto/ber.c:208,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/ber.c:212,10'
          Dst:             ber_read_length
    - functionName:    object_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/x509_utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 370
      functionLinenumberEnd: 385
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - object
      BBCount:         27
      ICount:          118
      EdgeCount:       31
      CyclomaticComplexity: 6
      functionsReached:
        - ASN1_STRING_to_UTF8
        - CRYPTO_free
        - strndup
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/x509_utils.c:377,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:379,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:382,26'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - strndup
                - CRYPTO_free
        - Branch String:   'libfreerdp/crypto/x509_utils.c:382,38'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:382,38'
              BranchSideFuncs:
                - winpr_int_assert
                - strndup
                - CRYPTO_free
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:382,38'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/x509_utils.c:382,38'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:382,38'
              BranchSideFuncs:
                - winpr_int_assert
                - strndup
                - CRYPTO_free
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:382,38'
              BranchSideFuncs:
                - winpr_int_assert
                - strndup
                - CRYPTO_free
        - Branch String:   'libfreerdp/crypto/x509_utils.c:382,38'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:382,38'
              BranchSideFuncs:
                - strndup
                - CRYPTO_free
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:382,38'
              BranchSideFuncs:
                - winpr_int_assert
                - strndup
                - CRYPTO_free
        - Branch String:   'libfreerdp/crypto/x509_utils.c:382,38'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:382,38'
              BranchSideFuncs:
                - winpr_int_assert
                - strndup
                - CRYPTO_free
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:382,38'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/x509_utils.c:382,38'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:382,38'
              BranchSideFuncs:
                - strndup
                - CRYPTO_free
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:382,38'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'libfreerdp/crypto/x509_utils.c:375,21'
          Dst:             ASN1_STRING_to_UTF8
        - Src:             'libfreerdp/crypto/x509_utils.c:382,38'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/x509_utils.c:382,38'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/x509_utils.c:382,11'
          Dst:             strndup
        - Src:             'libfreerdp/crypto/x509_utils.c:383,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:    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:    4
      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: 360
      functionLinenumberEnd: 367
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - list
        - allocate_count
      BBCount:         13
      ICount:          71
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - calloc
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/x509_utils.c:361,21'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:361,21'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:361,25'
              BranchSideFuncs:
                - calloc
        - Branch String:   'libfreerdp/crypto/x509_utils.c:361,47'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:361,51'
              BranchSideFuncs:
                - calloc
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:361,47'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/x509_utils.c:361,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:361,6'
              BranchSideFuncs:
                - calloc
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:363,34'
              BranchSideFuncs:
                - calloc
        - Branch String:   'libfreerdp/crypto/x509_utils.c:364,21'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:364,37'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:364,3'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/x509_utils.c:363,27'
          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'
        - size_t
      constantsTouched: []
      argNames:
        - list
        - allocate_count
      BBCount:         11
      ICount:          63
      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,27'
          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:
        - snprintf
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/x509_utils.c:125,31'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:126,15'
              BranchSideFuncs:
                - snprintf
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:133,76'
              BranchSideFuncs:
                - snprintf
        - 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,76'
              BranchSideFuncs:
                - snprintf
      Callsites:
        - Src:             'libfreerdp/crypto/x509_utils.c:133,9'
          Dst:             snprintf
    - 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:    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: 829
      functionLinenumberEnd: 845
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ok
        - csc
      BBCount:         12
      ICount:          76
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_Print_dbg_tag
        - X509_STORE_CTX_get_current_cert
        - X509_STORE_CTX_get_error
        - X509_STORE_CTX_get_error_depth
        - X509_verify_cert_error_string
        - winpr_int_assert
        - x509_utils_get_subject
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/x509_utils.c:830,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:830,6'
              BranchSideFuncs:
                - winpr_int_assert
                - 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_Print_dbg_tag.441
                - WLog_Print_dbg_tag.441
                - free
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:832,3'
              BranchSideFuncs:
                - winpr_int_assert
                - 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_Print_dbg_tag.441
                - WLog_Print_dbg_tag.441
                - free
        - Branch String:   'libfreerdp/crypto/x509_utils.c:832,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:832,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_Print_dbg_tag.441
                - WLog_Print_dbg_tag.441
                - free
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:832,3'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'libfreerdp/crypto/x509_utils.c:832,3'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/x509_utils.c:833,13'
          Dst:             X509_STORE_CTX_get_error
        - Src:             'libfreerdp/crypto/x509_utils.c:834,14'
          Dst:             X509_STORE_CTX_get_error_depth
        - Src:             'libfreerdp/crypto/x509_utils.c:835,17'
          Dst:             X509_STORE_CTX_get_current_cert
        - Src:             'libfreerdp/crypto/x509_utils.c:836,22'
          Dst:             X509_verify_cert_error_string
        - Src:             'libfreerdp/crypto/x509_utils.c:837,16'
          Dst:             x509_utils_get_subject
        - Src:             'libfreerdp/crypto/x509_utils.c:839,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/x509_utils.c:841,3'
          Dst:             WLog_Print_dbg_tag
    - 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:         9
      ICount:          48
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
        - 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_Print_dbg_tag.441
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:111,52'
              BranchSideFuncs:
                - X509_get_subject_name
                - crypto_print_name
                - WLog_Print_dbg_tag.441
        - 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: []
      Callsites:
        - Src:             'libfreerdp/crypto/x509_utils.c:108,3'
          Dst:             WLog_Print_dbg_tag
        - 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_Print_dbg_tag
    - functionName:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 216
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - tag
        - log_level
        - line
        - file
        - fkt
      BBCount:         9
      ICount:          67
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintMessageVA
      functionUses:    19
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/wlog.h:206,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/wlog.h:207,30'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessageVA
            - BranchSide:      'winpr/include/winpr/wlog.h:209,26'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessageVA
        - Branch String:   'winpr/include/winpr/wlog.h:209,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/wlog.h:209,7'
              BranchSideFuncs:
                - WLog_PrintMessageVA
            - BranchSide:      'winpr/include/winpr/wlog.h:212,4'
              BranchSideFuncs:
                - WLog_PrintMessageVA
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:207,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:209,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:213,4'
          Dst:             WLog_PrintMessageVA
    - 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_new
        - 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: 849
      functionLinenumberEnd: 919
      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_add_lookup
        - 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:855,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:856,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:858,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:860,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:861,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:866,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:871,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:872,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:874,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:876,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:877,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:879,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:881,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:883,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:886,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:888,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:890,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:916,18'
              BranchSideFuncs:
                - X509_STORE_free
        - Branch String:   'libfreerdp/crypto/x509_utils.c:895,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:896,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:897,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:897,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:898,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:900,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:907,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:909,11'
              BranchSideFuncs:
                - X509_STORE_free
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:912,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:858,25'
          Dst:             X509_STORE_new
        - Src:             'libfreerdp/crypto/x509_utils.c:866,2'
          Dst:             OPENSSL_init_crypto
        - Src:             'libfreerdp/crypto/x509_utils.c:871,6'
          Dst:             X509_STORE_set_default_paths
        - Src:             'libfreerdp/crypto/x509_utils.c:874,43'
          Dst:             X509_LOOKUP_hash_dir
        - Src:             'libfreerdp/crypto/x509_utils.c:874,11'
          Dst:             X509_STORE_add_lookup
        - Src:             'libfreerdp/crypto/x509_utils.c:879,2'
          Dst:             X509_LOOKUP_ctrl
        - Src:             'libfreerdp/crypto/x509_utils.c:883,3'
          Dst:             X509_LOOKUP_ctrl
        - Src:             'libfreerdp/crypto/x509_utils.c:886,2'
          Dst:             X509_STORE_set_flags
        - Src:             'libfreerdp/crypto/x509_utils.c:893,9'
          Dst:             X509_STORE_CTX_new
        - Src:             'libfreerdp/crypto/x509_utils.c:897,8'
          Dst:             X509_STORE_CTX_init
        - Src:             'libfreerdp/crypto/x509_utils.c:900,3'
          Dst:             X509_STORE_CTX_set_purpose
        - Src:             'libfreerdp/crypto/x509_utils.c:901,3'
          Dst:             X509_STORE_CTX_set_verify_cb
        - Src:             'libfreerdp/crypto/x509_utils.c:901,3'
          Dst:             verify_cb
        - Src:             'libfreerdp/crypto/x509_utils.c:903,8'
          Dst:             X509_verify_cert
        - Src:             'libfreerdp/crypto/x509_utils.c:904,9'
          Dst:             X509_STORE_CTX_get_error
        - Src:             'libfreerdp/crypto/x509_utils.c:906,3'
          Dst:             X509_STORE_CTX_free
        - Src:             'libfreerdp/crypto/x509_utils.c:916,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: 798
      functionLinenumberEnd: 826
      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:800,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:801,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:803,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:804,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:805,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:807,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:808,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:809,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:811,59'
              BranchSideFuncs:
                - X509_NAME_ENTRY_get_data
                - ASN1_STRING_to_UTF8
                - _strdup
                - CRYPTO_free
        - Branch String:   'libfreerdp/crypto/x509_utils.c:812,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:813,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:815,8'
              BranchSideFuncs:
                - ASN1_STRING_to_UTF8
                - _strdup
                - CRYPTO_free
        - Branch String:   'libfreerdp/crypto/x509_utils.c:817,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:818,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:820,6'
              BranchSideFuncs:
                - _strdup
                - CRYPTO_free
        - Branch String:   'libfreerdp/crypto/x509_utils.c:820,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:821,22'
              BranchSideFuncs:
                - _strdup
                - CRYPTO_free
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:823,37'
              BranchSideFuncs:
                - _strdup
                - CRYPTO_free
      Callsites:
        - Src:             'libfreerdp/crypto/x509_utils.c:799,28'
          Dst:             X509_get_subject_name
        - Src:             'libfreerdp/crypto/x509_utils.c:803,20'
          Dst:             X509_NAME_get_index_by_NID
        - Src:             'libfreerdp/crypto/x509_utils.c:807,33'
          Dst:             X509_NAME_get_entry
        - Src:             'libfreerdp/crypto/x509_utils.c:811,34'
          Dst:             X509_NAME_ENTRY_get_data
        - Src:             'libfreerdp/crypto/x509_utils.c:816,21'
          Dst:             ASN1_STRING_to_UTF8
        - Src:             'libfreerdp/crypto/x509_utils.c:823,22'
          Dst:             _strdup
        - Src:             'libfreerdp/crypto/x509_utils.c:824,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: 653
      functionLinenumberEnd: 692
      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:654,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:657,4'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:659,4'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:661,4'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:663,4'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:665,4'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:667,4'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:669,4'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:671,4'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:673,4'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:676,4'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:678,4'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:680,4'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:682,4'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:684,4'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:686,4'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:688,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:690,4'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    get_rsa_pss_digest
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/x509_utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 695
      functionLinenumberEnd: 774
      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
        - d2i_RSA_PSS_PARAMS
        - d2i_X509_ALGOR
        - hash_nid_to_winpr
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/x509_utils.c:713,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:714,3'
              BranchSideFuncs:
                - RSA_PSS_PARAMS_free
                - X509_ALGOR_free
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:715,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:720,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:721,3'
              BranchSideFuncs:
                - RSA_PSS_PARAMS_free
                - X509_ALGOR_free
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:726,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:727,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:729,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:736,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:732,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:733,4'
              BranchSideFuncs:
                - RSA_PSS_PARAMS_free
                - X509_ALGOR_free
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:734,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:737,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:739,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:767,6'
              BranchSideFuncs:
                - RSA_PSS_PARAMS_free
                - X509_ALGOR_free
        - Branch String:   'libfreerdp/crypto/x509_utils.c:745,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:746,4'
              BranchSideFuncs:
                - RSA_PSS_PARAMS_free
                - X509_ALGOR_free
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:749,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:749,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:750,4'
              BranchSideFuncs:
                - RSA_PSS_PARAMS_free
                - X509_ALGOR_free
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:751,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:754,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:755,4'
              BranchSideFuncs:
                - RSA_PSS_PARAMS_free
                - X509_ALGOR_free
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:758,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:760,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:761,4'
              BranchSideFuncs:
                - RSA_PSS_PARAMS_free
                - X509_ALGOR_free
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:762,2'
              BranchSideFuncs:
                - RSA_PSS_PARAMS_free
                - X509_ALGOR_free
        - Branch String:   'libfreerdp/crypto/x509_utils.c:767,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:768,3'
              BranchSideFuncs:
                - RSA_PSS_PARAMS_free
                - X509_ALGOR_free
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:769,8'
              BranchSideFuncs:
                - RSA_PSS_PARAMS_free
                - X509_ALGOR_free
      Callsites:
        - Src:             'libfreerdp/crypto/x509_utils.c:708,2'
          Dst:             X509_ALGOR_get0
        - Src:             'libfreerdp/crypto/x509_utils.c:718,8'
          Dst:             ASN1_STRING_get0_data
        - Src:             'libfreerdp/crypto/x509_utils.c:719,42'
          Dst:             ASN1_STRING_length
        - Src:             'libfreerdp/crypto/x509_utils.c:719,11'
          Dst:             d2i_RSA_PSS_PARAMS
        - Src:             'libfreerdp/crypto/x509_utils.c:730,3'
          Dst:             X509_ALGOR_get0
        - Src:             'libfreerdp/crypto/x509_utils.c:731,38'
          Dst:             OBJ_obj2nid
        - Src:             'libfreerdp/crypto/x509_utils.c:731,20'
          Dst:             hash_nid_to_winpr
        - Src:             'libfreerdp/crypto/x509_utils.c:744,3'
          Dst:             X509_ALGOR_get0
        - Src:             'libfreerdp/crypto/x509_utils.c:745,7'
          Dst:             OBJ_obj2nid
        - Src:             'libfreerdp/crypto/x509_utils.c:752,9'
          Dst:             ASN1_STRING_get0_data
        - Src:             'libfreerdp/crypto/x509_utils.c:753,48'
          Dst:             ASN1_STRING_length
        - Src:             'libfreerdp/crypto/x509_utils.c:753,21'
          Dst:             d2i_X509_ALGOR
        - Src:             'libfreerdp/crypto/x509_utils.c:758,3'
          Dst:             X509_ALGOR_get0
        - Src:             'libfreerdp/crypto/x509_utils.c:759,35'
          Dst:             OBJ_obj2nid
        - Src:             'libfreerdp/crypto/x509_utils.c:759,17'
          Dst:             hash_nid_to_winpr
        - Src:             'libfreerdp/crypto/x509_utils.c:772,2'
          Dst:             RSA_PSS_PARAMS_free
        - Src:             'libfreerdp/crypto/x509_utils.c:773,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: 778
      functionLinenumberEnd: 795
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - xcert
      BBCount:         14
      ICount:          69
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - OBJ_find_sigid_algs
        - X509_get0_signature
        - X509_get_signature_nid
        - get_rsa_pss_digest
        - hash_nid_to_winpr
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/x509_utils.c:779,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:779,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:779,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/x509_utils.c:783,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:785,21'
              BranchSideFuncs:
                - X509_get0_signature
                - get_rsa_pss_digest
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:790,6'
              BranchSideFuncs:
                - OBJ_find_sigid_algs
                - hash_nid_to_winpr
        - Branch String:   'libfreerdp/crypto/x509_utils.c:791,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:792,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:794,27'
              BranchSideFuncs:
                - hash_nid_to_winpr
      Callsites:
        - Src:             'libfreerdp/crypto/x509_utils.c:779,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/x509_utils.c:781,18'
          Dst:             X509_get_signature_nid
        - Src:             'libfreerdp/crypto/x509_utils.c:786,3'
          Dst:             X509_get0_signature
        - Src:             'libfreerdp/crypto/x509_utils.c:787,10'
          Dst:             get_rsa_pss_digest
        - Src:             'libfreerdp/crypto/x509_utils.c:791,6'
          Dst:             OBJ_find_sigid_algs
        - Src:             'libfreerdp/crypto/x509_utils.c:794,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: 625
      functionLinenumberEnd: 650
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - data
        - len
        - fromFile
      BBCount:         14
      ICount:          87
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - BIO_free_all
        - BIO_new_file
        - BIO_new_mem_buf
        - PEM_read_bio_X509
        - WLog_Print_dbg_tag
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/x509_utils.c:628,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:629,22'
              BranchSideFuncs:
                - BIO_new_file
                - WLog_Print_dbg_tag.441
                - PEM_read_bio_X509
                - BIO_free_all
                - WLog_Print_dbg_tag.441
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:632,7'
              BranchSideFuncs:
                - BIO_new_mem_buf
                - WLog_Print_dbg_tag.441
                - PEM_read_bio_X509
                - BIO_free_all
                - WLog_Print_dbg_tag.441
        - Branch String:   'libfreerdp/crypto/x509_utils.c:632,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:633,4'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:635,25'
              BranchSideFuncs:
                - BIO_new_mem_buf
                - WLog_Print_dbg_tag.441
                - PEM_read_bio_X509
                - BIO_free_all
                - WLog_Print_dbg_tag.441
        - Branch String:   'libfreerdp/crypto/x509_utils.c:638,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:640,3'
              BranchSideFuncs:
                - PEM_read_bio_X509
                - BIO_free_all
                - WLog_Print_dbg_tag.441
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:644,27'
              BranchSideFuncs:
                - PEM_read_bio_X509
                - BIO_free_all
                - WLog_Print_dbg_tag.441
        - Branch String:   'libfreerdp/crypto/x509_utils.c:646,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:647,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:649,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/x509_utils.c:629,9'
          Dst:             BIO_new_file
        - Src:             'libfreerdp/crypto/x509_utils.c:635,9'
          Dst:             BIO_new_mem_buf
        - Src:             'libfreerdp/crypto/x509_utils.c:640,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/x509_utils.c:644,9'
          Dst:             PEM_read_bio_X509
        - Src:             'libfreerdp/crypto/x509_utils.c:645,2'
          Dst:             BIO_free_all
        - Src:             'libfreerdp/crypto/x509_utils.c:647,3'
          Dst:             WLog_Print_dbg_tag
    - 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: 596
      functionLinenumberEnd: 622
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - xcert
      BBCount:         6
      ICount:          59
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_Print_dbg_tag
        - x509_utils_get_hash
        - x509_utils_get_issuer
        - x509_utils_get_subject
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/x509_utils.c:604,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:606,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.441
                - WLog_Print_dbg_tag.441
                - WLog_Print_dbg_tag.441
                - WLog_Print_dbg_tag.441
                - WLog_Print_dbg_tag.441
                - free
                - free
                - free
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:610,2'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.441
                - WLog_Print_dbg_tag.441
                - WLog_Print_dbg_tag.441
                - WLog_Print_dbg_tag.441
                - WLog_Print_dbg_tag.441
                - free
                - free
                - free
      Callsites:
        - Src:             'libfreerdp/crypto/x509_utils.c:600,12'
          Dst:             x509_utils_get_subject
        - Src:             'libfreerdp/crypto/x509_utils.c:601,11'
          Dst:             x509_utils_get_issuer
        - Src:             'libfreerdp/crypto/x509_utils.c:602,14'
          Dst:             x509_utils_get_hash
        - Src:             'libfreerdp/crypto/x509_utils.c:606,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/x509_utils.c:610,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/x509_utils.c:611,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/x509_utils.c:612,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/x509_utils.c:613,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/x509_utils.c:614,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    x509_utils_get_issuer
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/x509_utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 558
      functionLinenumberEnd: 569
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - xcert
      BBCount:         9
      ICount:          48
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
        - X509_get_issuer_name
        - crypto_print_name
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/x509_utils.c:560,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:562,3'
              BranchSideFuncs:
                - X509_get_issuer_name
                - crypto_print_name
                - WLog_Print_dbg_tag.441
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:565,50'
              BranchSideFuncs:
                - X509_get_issuer_name
                - crypto_print_name
                - WLog_Print_dbg_tag.441
        - Branch String:   'libfreerdp/crypto/x509_utils.c:566,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:567,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:568,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/x509_utils.c:562,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/x509_utils.c:565,29'
          Dst:             X509_get_issuer_name
        - Src:             'libfreerdp/crypto/x509_utils.c:565,11'
          Dst:             crypto_print_name
        - Src:             'libfreerdp/crypto/x509_utils.c:567,3'
          Dst:             WLog_Print_dbg_tag
    - 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:         15
      ICount:          103
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - EVP_get_digestbyname
        - WLog_Print_dbg_tag
        - 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_Print_dbg_tag.441
                - calloc
                - WLog_Print_dbg_tag.441
                - X509_digest
                - free
                - WLog_Print_dbg_tag.441
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:49,7'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.441
                - calloc
                - WLog_Print_dbg_tag.441
                - X509_digest
                - free
                - WLog_Print_dbg_tag.441
        - Branch String:   'libfreerdp/crypto/x509_utils.c:49,13'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:49,17'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.441
                - calloc
                - WLog_Print_dbg_tag.441
                - X509_digest
                - free
                - WLog_Print_dbg_tag.441
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:51,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.441
        - Branch String:   'libfreerdp/crypto/x509_utils.c:49,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:51,3'
              BranchSideFuncs:
                - calloc
                - WLog_Print_dbg_tag.441
                - X509_digest
                - free
                - WLog_Print_dbg_tag.441
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:55,14'
              BranchSideFuncs:
                - calloc
                - WLog_Print_dbg_tag.441
                - X509_digest
                - free
                - WLog_Print_dbg_tag.441
        - Branch String:   'libfreerdp/crypto/x509_utils.c:56,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:58,3'
              BranchSideFuncs:
                - X509_digest
                - free
                - WLog_Print_dbg_tag.441
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:62,18'
              BranchSideFuncs:
                - X509_digest
                - free
                - WLog_Print_dbg_tag.441
        - Branch String:   'libfreerdp/crypto/x509_utils.c:62,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:64,8'
              BranchSideFuncs:
                - free
                - WLog_Print_dbg_tag.441
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:69,12'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/x509_utils.c:43,21'
          Dst:             EVP_get_digestbyname
        - Src:             'libfreerdp/crypto/x509_utils.c:46,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/x509_utils.c:51,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/x509_utils.c:55,7'
          Dst:             calloc
        - Src:             'libfreerdp/crypto/x509_utils.c:58,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/x509_utils.c:62,6'
          Dst:             X509_digest
        - Src:             'libfreerdp/crypto/x509_utils.c:65,3'
          Dst:             WLog_Print_dbg_tag
    - 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: 572
      functionLinenumberEnd: 593
      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:577,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:578,3'
              BranchSideFuncs:
                - OBJ_nid2obj
                - X509_get_ext_d2i
                - sk_ASN1_OBJECT_find
                - sk_ASN1_OBJECT_pop_free
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:580,20'
              BranchSideFuncs:
                - OBJ_nid2obj
                - X509_get_ext_d2i
                - 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,3'
              BranchSideFuncs:
                - X509_get_ext_d2i
                - sk_ASN1_OBJECT_find
                - sk_ASN1_OBJECT_pop_free
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:584,31'
              BranchSideFuncs:
                - X509_get_ext_d2i
                - sk_ASN1_OBJECT_find
                - sk_ASN1_OBJECT_pop_free
        - Branch String:   'libfreerdp/crypto/x509_utils.c:585,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:586,3'
              BranchSideFuncs:
                - sk_ASN1_OBJECT_find
                - sk_ASN1_OBJECT_pop_free
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:588,26'
              BranchSideFuncs:
                - sk_ASN1_OBJECT_find
                - sk_ASN1_OBJECT_pop_free
        - Branch String:   'libfreerdp/crypto/x509_utils.c:588,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:589,7'
              BranchSideFuncs:
                - sk_ASN1_OBJECT_pop_free
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:591,26'
              BranchSideFuncs:
                - sk_ASN1_OBJECT_pop_free
      Callsites:
        - Src:             'libfreerdp/crypto/x509_utils.c:580,8'
          Dst:             OBJ_nid2obj
        - Src:             'libfreerdp/crypto/x509_utils.c:584,14'
          Dst:             X509_get_ext_d2i
        - Src:             'libfreerdp/crypto/x509_utils.c:588,6'
          Dst:             sk_ASN1_OBJECT_find
        - Src:             'libfreerdp/crypto/x509_utils.c:591,2'
          Dst:             sk_ASN1_OBJECT_pop_free
        - Src:             'libfreerdp/crypto/x509_utils.c:591,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: 519
      functionLinenumberEnd: 555
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - x509
        - count
        - lengths
      BBCount:         15
      ICount:          126
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - calloc
        - extract_string
        - map_subject_alt_name
        - string_list_free
        - string_list_initialize
        - strlen
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/x509_utils.c:526,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:528,3'
              BranchSideFuncs:
                - string_list_free
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:534,31'
              BranchSideFuncs:
                - calloc
                - calloc
                - string_list_free
                - free
                - free
                - string_list_free
                - strlen
        - Branch String:   'libfreerdp/crypto/x509_utils.c:537,14'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:537,20'
              BranchSideFuncs:
                - string_list_free
                - free
                - free
                - string_list_free
                - strlen
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:539,3'
              BranchSideFuncs:
                - string_list_free
                - free
                - free
        - Branch String:   'libfreerdp/crypto/x509_utils.c:537,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:539,3'
              BranchSideFuncs:
                - string_list_free
                - strlen
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:547,14'
              BranchSideFuncs:
                - string_list_free
                - strlen
        - Branch String:   'libfreerdp/crypto/x509_utils.c:547,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:549,20'
              BranchSideFuncs:
                - strlen
                - string_list_free
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:553,2'
              BranchSideFuncs:
                - string_list_free
      Callsites:
        - Src:             'libfreerdp/crypto/x509_utils.c:522,2'
          Dst:             string_list_initialize
        - Src:             'libfreerdp/crypto/x509_utils.c:523,2'
          Dst:             map_subject_alt_name
        - Src:             'libfreerdp/crypto/x509_utils.c:523,2'
          Dst:             extract_string
        - Src:             'libfreerdp/crypto/x509_utils.c:528,3'
          Dst:             string_list_free
        - Src:             'libfreerdp/crypto/x509_utils.c:534,19'
          Dst:             calloc
        - Src:             'libfreerdp/crypto/x509_utils.c:535,15'
          Dst:             calloc
        - Src:             'libfreerdp/crypto/x509_utils.c:539,3'
          Dst:             string_list_free
        - Src:             'libfreerdp/crypto/x509_utils.c:550,19'
          Dst:             strlen
        - Src:             'libfreerdp/crypto/x509_utils.c:553,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: 321
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - name
        - data
        - index
        - count
      BBCount:         36
      ICount:          201
      EdgeCount:       41
      CyclomaticComplexity: 7
      functionsReached:
        - ASN1_STRING_to_UTF8
        - CRYPTO_free
        - ERR_error_string
        - ERR_get_error
        - WLog_Print_dbg_tag
        - general_name_type_label
        - string_list_allocate
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/x509_utils.c:279,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:282,10'
              BranchSideFuncs:
                - ASN1_STRING_to_UTF8
                - winpr_int_assert
                - winpr_int_assert
                - string_list_allocate
                - CRYPTO_free
                - general_name_type_label
                - ERR_get_error
                - ERR_error_string
                - WLog_Print_dbg_tag.441
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:286,10'
              BranchSideFuncs:
                - ASN1_STRING_to_UTF8
                - winpr_int_assert
                - winpr_int_assert
                - string_list_allocate
                - CRYPTO_free
                - general_name_type_label
                - ERR_get_error
                - ERR_error_string
                - WLog_Print_dbg_tag.441
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:290,10'
              BranchSideFuncs:
                - ASN1_STRING_to_UTF8
                - winpr_int_assert
                - winpr_int_assert
                - string_list_allocate
                - CRYPTO_free
                - general_name_type_label
                - ERR_get_error
                - ERR_error_string
                - WLog_Print_dbg_tag.441
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:294,4'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/x509_utils.c:297,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:299,3'
              BranchSideFuncs:
                - general_name_type_label
                - ERR_get_error
                - ERR_error_string
                - WLog_Print_dbg_tag.441
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:304,23'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - string_list_allocate
                - CRYPTO_free
        - Branch String:   'libfreerdp/crypto/x509_utils.c:304,29'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:304,29'
              BranchSideFuncs:
                - winpr_int_assert
                - string_list_allocate
                - CRYPTO_free
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:304,29'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/x509_utils.c:304,29'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:304,29'
              BranchSideFuncs:
                - winpr_int_assert
                - string_list_allocate
                - CRYPTO_free
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:304,29'
              BranchSideFuncs:
                - winpr_int_assert
                - string_list_allocate
                - CRYPTO_free
        - Branch String:   'libfreerdp/crypto/x509_utils.c:304,29'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:304,29'
              BranchSideFuncs:
                - string_list_allocate
                - CRYPTO_free
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:304,29'
              BranchSideFuncs:
                - winpr_int_assert
                - string_list_allocate
                - CRYPTO_free
        - Branch String:   'libfreerdp/crypto/x509_utils.c:304,29'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:304,29'
              BranchSideFuncs:
                - winpr_int_assert
                - string_list_allocate
                - CRYPTO_free
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:304,29'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/x509_utils.c:304,29'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:304,29'
              BranchSideFuncs:
                - string_list_allocate
                - CRYPTO_free
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:304,29'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/x509_utils.c:306,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:308,3'
              BranchSideFuncs:
                - CRYPTO_free
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:312,38'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/x509_utils.c:315,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:317,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:320,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/x509_utils.c:297,7'
          Dst:             ASN1_STRING_to_UTF8
        - Src:             'libfreerdp/crypto/x509_utils.c:299,3'
          Dst:             general_name_type_label
        - Src:             'libfreerdp/crypto/x509_utils.c:299,3'
          Dst:             ERR_get_error
        - Src:             'libfreerdp/crypto/x509_utils.c:299,3'
          Dst:             ERR_error_string
        - Src:             'libfreerdp/crypto/x509_utils.c:299,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/x509_utils.c:304,29'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/x509_utils.c:304,29'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/x509_utils.c:304,2'
          Dst:             string_list_allocate
        - Src:             'libfreerdp/crypto/x509_utils.c:308,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: 501
      functionLinenumberEnd: 516
      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:504,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:504,6'
              BranchSideFuncs:
                - free
                - CRYPTO_free
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:506,15'
              BranchSideFuncs:
                - free
                - CRYPTO_free
        - Branch String:   'libfreerdp/crypto/x509_utils.c:506,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:508,8'
              BranchSideFuncs:
                - free
                - CRYPTO_free
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:514,15'
              BranchSideFuncs:
                - free
        - Branch String:   'libfreerdp/crypto/x509_utils.c:508,8'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:510,5'
              BranchSideFuncs:
                - CRYPTO_free
                - free
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:512,3'
              BranchSideFuncs:
                - free
                - CRYPTO_free
      Callsites:
        - Src:             'libfreerdp/crypto/x509_utils.c:510,5'
          Dst:             CRYPTO_free
    - functionName:    x509_utils_get_date
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/x509_utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 474
      functionLinenumberEnd: 498
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - x509
        - startDate
      BBCount:         20
      ICount:          107
      EdgeCount:       24
      CyclomaticComplexity: 6
      functionsReached:
        - ASN1_TIME_print
        - BIO_ctrl
        - BIO_free_all
        - BIO_new
        - BIO_s_mem
        - X509_get0_notAfter
        - X509_get0_notBefore
        - strndup
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/x509_utils.c:475,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:475,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:475,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/x509_utils.c:477,26'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:477,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:477,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:478,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:479,3'
              BranchSideFuncs:
                - BIO_s_mem
                - BIO_new
                - ASN1_TIME_print
                - BIO_free_all
                - BIO_ctrl
                - strndup
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:481,22'
              BranchSideFuncs:
                - BIO_s_mem
                - BIO_new
                - ASN1_TIME_print
                - BIO_free_all
                - BIO_ctrl
                - strndup
        - Branch String:   'libfreerdp/crypto/x509_utils.c:482,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:483,3'
              BranchSideFuncs:
                - ASN1_TIME_print
                - BIO_free_all
                - BIO_ctrl
                - strndup
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:485,8'
              BranchSideFuncs:
                - ASN1_TIME_print
                - BIO_free_all
                - BIO_ctrl
                - strndup
        - Branch String:   'libfreerdp/crypto/x509_utils.c:486,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:0,0'
              BranchSideFuncs:
                - BIO_ctrl
                - strndup
                - BIO_free_all
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:488,12'
              BranchSideFuncs:
                - BIO_ctrl
                - strndup
                - BIO_free_all
      Callsites:
        - Src:             'libfreerdp/crypto/x509_utils.c:475,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/x509_utils.c:477,38'
          Dst:             X509_get0_notBefore
        - Src:             'libfreerdp/crypto/x509_utils.c:477,66'
          Dst:             X509_get0_notAfter
        - Src:             'libfreerdp/crypto/x509_utils.c:481,22'
          Dst:             BIO_s_mem
        - Src:             'libfreerdp/crypto/x509_utils.c:481,14'
          Dst:             BIO_new
        - Src:             'libfreerdp/crypto/x509_utils.c:486,6'
          Dst:             ASN1_TIME_print
        - Src:             'libfreerdp/crypto/x509_utils.c:490,3'
          Dst:             BIO_ctrl
        - Src:             'libfreerdp/crypto/x509_utils.c:491,9'
          Dst:             strndup
        - Src:             'libfreerdp/crypto/x509_utils.c:496,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:    object_list_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/x509_utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 388
      functionLinenumberEnd: 391
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - list
      BBCount:         9
      ICount:          33
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/x509_utils.c:389,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:389,2'
              BranchSideFuncs:
                - free
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:389,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'libfreerdp/crypto/x509_utils.c:389,2'
          Dst:             winpr_int_assert
    - functionName:    extract_othername_object_as_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/x509_utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 394
      functionLinenumberEnd: 431
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - name
        - data
        - index
        - count
      BBCount:         38
      ICount:          205
      EdgeCount:       47
      CyclomaticComplexity: 11
      functionsReached:
        - OBJ_cmp
        - object_list_allocate
        - object_string
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/x509_utils.c:398,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:399,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:401,6'
              BranchSideFuncs:
                - OBJ_cmp
                - winpr_int_assert
                - winpr_int_assert
                - object_list_allocate
                - object_string
        - Branch String:   'libfreerdp/crypto/x509_utils.c:401,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:403,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:406,19'
              BranchSideFuncs:
                - OBJ_cmp
                - winpr_int_assert
                - winpr_int_assert
                - 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,23'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - object_list_allocate
                - object_string
        - Branch String:   'libfreerdp/crypto/x509_utils.c:411,29'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:411,29'
              BranchSideFuncs:
                - winpr_int_assert
                - object_list_allocate
                - object_string
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:411,29'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/x509_utils.c:411,29'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:411,29'
              BranchSideFuncs:
                - winpr_int_assert
                - object_list_allocate
                - object_string
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:411,29'
              BranchSideFuncs:
                - winpr_int_assert
                - object_list_allocate
                - object_string
        - Branch String:   'libfreerdp/crypto/x509_utils.c:411,29'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:411,29'
              BranchSideFuncs:
                - object_list_allocate
                - object_string
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:411,29'
              BranchSideFuncs:
                - winpr_int_assert
                - object_list_allocate
                - object_string
        - Branch String:   'libfreerdp/crypto/x509_utils.c:411,29'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:411,29'
              BranchSideFuncs:
                - winpr_int_assert
                - object_list_allocate
                - object_string
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:411,29'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/x509_utils.c:411,29'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:411,29'
              BranchSideFuncs:
                - object_list_allocate
                - object_string
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:411,29'
              BranchSideFuncs:
                - winpr_int_assert
        - 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,45'
              BranchSideFuncs:
                - object_string
        - Branch String:   'libfreerdp/crypto/x509_utils.c:420,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:422,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:425,6'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/x509_utils.c:425,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:427,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:430,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/x509_utils.c:406,11'
          Dst:             OBJ_cmp
        - Src:             'libfreerdp/crypto/x509_utils.c:411,29'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/x509_utils.c:411,29'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/x509_utils.c:411,2'
          Dst:             object_list_allocate
        - Src:             'libfreerdp/crypto/x509_utils.c:418,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: 351
      functionLinenumberEnd: 357
      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: 454
      functionLinenumberEnd: 471
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - x509
      BBCount:         6
      ICount:          53
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - OBJ_nid2obj
        - extract_othername_object_as_string
        - map_subject_alt_name
        - object_list_free
        - object_list_initialize
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/x509_utils.c:462,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:464,3'
              BranchSideFuncs:
                - object_list_free
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:468,16'
              BranchSideFuncs:
                - object_list_free
      Callsites:
        - Src:             'libfreerdp/crypto/x509_utils.c:457,2'
          Dst:             object_list_initialize
        - Src:             'libfreerdp/crypto/x509_utils.c:458,17'
          Dst:             OBJ_nid2obj
        - Src:             'libfreerdp/crypto/x509_utils.c:460,2'
          Dst:             map_subject_alt_name
        - Src:             'libfreerdp/crypto/x509_utils.c:460,2'
          Dst:             extract_othername_object_as_string
        - Src:             'libfreerdp/crypto/x509_utils.c:464,3'
          Dst:             object_list_free
        - Src:             'libfreerdp/crypto/x509_utils.c:469,2'
          Dst:             object_list_free
    - functionName:    x509_utils_get_email
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/x509_utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 434
      functionLinenumberEnd: 451
      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
        - extract_string
        - map_subject_alt_name
        - string_list_free
        - string_list_initialize
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/x509_utils.c:441,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:443,3'
              BranchSideFuncs:
                - string_list_free
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:447,24'
              BranchSideFuncs:
                - _strdup
                - CRYPTO_free
                - string_list_free
      Callsites:
        - Src:             'libfreerdp/crypto/x509_utils.c:437,2'
          Dst:             string_list_initialize
        - Src:             'libfreerdp/crypto/x509_utils.c:439,2'
          Dst:             map_subject_alt_name
        - Src:             'libfreerdp/crypto/x509_utils.c:439,2'
          Dst:             extract_string
        - Src:             'libfreerdp/crypto/x509_utils.c:443,3'
          Dst:             string_list_free
        - Src:             'libfreerdp/crypto/x509_utils.c:447,11'
          Dst:             _strdup
        - Src:             'libfreerdp/crypto/x509_utils.c:448,2'
          Dst:             CRYPTO_free
        - Src:             'libfreerdp/crypto/x509_utils.c:449,2'
          Dst:             string_list_free
    - functionName:    Stream_Seek
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 124
      functionLinenumberEnd: 128
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - s
        - _offset
      BBCount:         15
      ICount:          53
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:125,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:125,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - winpr_int_assert
            - BranchSide:      'winpr/include/winpr/stream.h:125,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:126,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:126,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/stream.h:126,3'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:125,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:126,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:126,3'
          Dst:             winpr_int_assert
    - functionName:    x509_from_rsa
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/cert_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 192
      functionLinenumberEnd: 241
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - rsa
      BBCount:         15
      ICount:          102
      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
        - WLog_Print_dbg_tag
        - 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:204,3'
              BranchSideFuncs:
                - PEM_write_bio_RSA_PUBKEY
                - PEM_read_bio_PUBKEY
                - WLog_Print_dbg_tag.529
                - BIO_free_all
                - EVP_PKEY_free
                - X509_new
                - WLog_Print_dbg_tag.529
                - X509_set_pubkey
                - WLog_Print_dbg_tag.529
                - X509_free
                - WLog_Print_dbg_tag.529
            - BranchSide:      'libfreerdp/crypto/cert_common.c:208,42'
              BranchSideFuncs:
                - PEM_write_bio_RSA_PUBKEY
                - PEM_read_bio_PUBKEY
                - WLog_Print_dbg_tag.529
                - BIO_free_all
                - EVP_PKEY_free
                - X509_new
                - WLog_Print_dbg_tag.529
                - X509_set_pubkey
                - WLog_Print_dbg_tag.529
                - X509_free
                - WLog_Print_dbg_tag.529
        - Branch String:   'libfreerdp/crypto/cert_common.c:209,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/cert_common.c:211,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.529
                - BIO_free_all
                - EVP_PKEY_free
            - BranchSide:      'libfreerdp/crypto/cert_common.c:215,31'
              BranchSideFuncs:
                - PEM_read_bio_PUBKEY
                - WLog_Print_dbg_tag.529
                - BIO_free_all
                - EVP_PKEY_free
                - X509_new
                - WLog_Print_dbg_tag.529
                - X509_set_pubkey
                - WLog_Print_dbg_tag.529
                - X509_free
        - Branch String:   'libfreerdp/crypto/cert_common.c:216,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/cert_common.c:218,3'
              BranchSideFuncs:
                - X509_new
                - WLog_Print_dbg_tag.529
                - BIO_free_all
                - EVP_PKEY_free
                - X509_set_pubkey
                - WLog_Print_dbg_tag.529
                - X509_free
            - BranchSide:      'libfreerdp/crypto/cert_common.c:222,9'
              BranchSideFuncs:
                - X509_new
                - WLog_Print_dbg_tag.529
                - BIO_free_all
                - EVP_PKEY_free
                - X509_set_pubkey
                - WLog_Print_dbg_tag.529
                - X509_free
        - Branch String:   'libfreerdp/crypto/cert_common.c:223,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/cert_common.c:225,3'
              BranchSideFuncs:
                - X509_set_pubkey
                - BIO_free_all
                - EVP_PKEY_free
                - WLog_Print_dbg_tag.529
                - X509_free
            - BranchSide:      'libfreerdp/crypto/cert_common.c:229,34'
              BranchSideFuncs:
                - X509_set_pubkey
                - BIO_free_all
                - EVP_PKEY_free
                - WLog_Print_dbg_tag.529
                - X509_free
        - Branch String:   'libfreerdp/crypto/cert_common.c:230,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/cert_common.c:230,13'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.529
                - X509_free
                - BIO_free_all
                - EVP_PKEY_free
            - BranchSide:      'libfreerdp/crypto/cert_common.c:232,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.529
                - 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:204,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/cert_common.c:208,17'
          Dst:             PEM_write_bio_RSA_PUBKEY
        - Src:             'libfreerdp/crypto/cert_common.c:211,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/cert_common.c:215,11'
          Dst:             PEM_read_bio_PUBKEY
        - Src:             'libfreerdp/crypto/cert_common.c:218,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/cert_common.c:222,9'
          Dst:             X509_new
        - Src:             'libfreerdp/crypto/cert_common.c:225,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/cert_common.c:229,18'
          Dst:             X509_set_pubkey
        - Src:             'libfreerdp/crypto/cert_common.c:232,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/cert_common.c:233,3'
          Dst:             X509_free
        - Src:             'libfreerdp/crypto/cert_common.c:238,2'
          Dst:             BIO_free_all
        - Src:             'libfreerdp/crypto/cert_common.c:239,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:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 216
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - tag
        - log_level
        - line
        - file
        - fkt
      BBCount:         9
      ICount:          67
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintMessageVA
      functionUses:    9
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/wlog.h:206,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/wlog.h:207,30'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessageVA
            - BranchSide:      'winpr/include/winpr/wlog.h:209,26'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessageVA
        - Branch String:   'winpr/include/winpr/wlog.h:209,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/wlog.h:209,7'
              BranchSideFuncs:
                - WLog_PrintMessageVA
            - BranchSide:      'winpr/include/winpr/wlog.h:212,4'
              BranchSideFuncs:
                - WLog_PrintMessageVA
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:207,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:209,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:213,4'
          Dst:             WLog_PrintMessageVA
    - 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:         13
      ICount:          97
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_Read
        - WLog_Print_dbg_tag
        - 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_Print_dbg_tag.529
                - Stream_Read.540
                - crypto_reverse
                - crypto_reverse
                - WLog_Print_dbg_tag.529
            - BranchSide:      'libfreerdp/crypto/cert_common.c:174,6'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.529
                - Stream_Read.540
                - crypto_reverse
                - crypto_reverse
                - WLog_Print_dbg_tag.529
        - Branch String:   'libfreerdp/crypto/cert_common.c:174,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/cert_common.c:176,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.529
            - BranchSide:      'libfreerdp/crypto/cert_common.c:179,7'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.529
                - Stream_Read.540
                - crypto_reverse
                - crypto_reverse
        - Branch String:   'libfreerdp/crypto/cert_common.c:179,21'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/cert_common.c:179,25'
              BranchSideFuncs:
                - Stream_Read.540
                - crypto_reverse
                - crypto_reverse
                - WLog_Print_dbg_tag.529
            - BranchSide:      'libfreerdp/crypto/cert_common.c:181,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.529
        - Branch String:   'libfreerdp/crypto/cert_common.c:179,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/cert_common.c:181,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.529
            - BranchSide:      'libfreerdp/crypto/cert_common.c:184,14'
              BranchSideFuncs:
                - Stream_Read.540
                - crypto_reverse
                - crypto_reverse
      Callsites:
        - Src:             'libfreerdp/crypto/cert_common.c:172,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/cert_common.c:176,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/cert_common.c:181,3'
          Dst:             WLog_Print_dbg_tag
        - 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: 699
      functionLinenumberEnd: 705
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - _s
        - _b
        - _n
      BBCount:         24
      ICount:          83
      EdgeCount:       25
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_GetRemainingCapacity
        - Stream_Seek
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:700,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:700,3'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_GetRemainingCapacity
                - winpr_int_assert
                - Stream_Seek.519
            - BranchSide:      'winpr/include/winpr/stream.h:700,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:701,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:701,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - winpr_int_assert
                - Stream_Seek.519
            - BranchSide:      'winpr/include/winpr/stream.h:701,3'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_GetRemainingCapacity
                - winpr_int_assert
                - Stream_Seek.519
        - Branch String:   'winpr/include/winpr/stream.h:701,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:701,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - winpr_int_assert
                - Stream_Seek.519
            - BranchSide:      'winpr/include/winpr/stream.h:701,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:702,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:702,3'
              BranchSideFuncs:
                - Stream_Seek.519
            - BranchSide:      'winpr/include/winpr/stream.h:702,3'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:700,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:701,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:702,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:702,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:704,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:         15
      ICount:          69
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
        - cert_info_free
        - winpr_int_assert
      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_Print_dbg_tag.529
            - BranchSide:      'libfreerdp/crypto/cert_common.c:141,2'
              BranchSideFuncs:
                - winpr_int_assert
        - 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_Print_dbg_tag.529
            - BranchSide:      'libfreerdp/crypto/cert_common.c:151,32'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/cert_common.c:141,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/cert_common.c:142,2'
          Dst:             cert_info_free
        - Src:             'libfreerdp/crypto/cert_common.c:148,3'
          Dst:             WLog_Print_dbg_tag
    - 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:         9
      ICount:          39
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      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:
                - winpr_int_assert
      Callsites:
        - Src:             'libfreerdp/crypto/cert_common.c:133,2'
          Dst:             winpr_int_assert
    - 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:         10
      ICount:          69
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_Read
        - WLog_Print_dbg_tag
        - 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.540
                - WLog_Print_dbg_tag.529
            - BranchSide:      'libfreerdp/crypto/cert_common.c:159,6'
              BranchSideFuncs:
                - cert_info_allocate
                - Stream_Read.540
                - WLog_Print_dbg_tag.529
        - Branch String:   'libfreerdp/crypto/cert_common.c:159,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/cert_common.c:161,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.529
            - BranchSide:      'libfreerdp/crypto/cert_common.c:164,26'
              BranchSideFuncs:
                - cert_info_allocate
                - Stream_Read.540
        - Branch String:   'libfreerdp/crypto/cert_common.c:164,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/cert_common.c:165,3'
              BranchSideFuncs:
                - Stream_Read.540
            - BranchSide:      'libfreerdp/crypto/cert_common.c:166,14'
              BranchSideFuncs:
                - Stream_Read.540
      Callsites:
        - Src:             'libfreerdp/crypto/cert_common.c:157,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/cert_common.c:161,3'
          Dst:             WLog_Print_dbg_tag
        - 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:         21
      ICount:          103
      EdgeCount:       23
      CyclomaticComplexity: 4
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/cert_common.c:113,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/cert_common.c:113,2'
              BranchSideFuncs:
                - winpr_int_assert
                - malloc
            - BranchSide:      'libfreerdp/crypto/cert_common.c:113,2'
              BranchSideFuncs:
                - winpr_int_assert
        - 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:114,2'
              BranchSideFuncs:
                - winpr_int_assert
        - 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:             winpr_int_assert
        - Src:             'libfreerdp/crypto/cert_common.c:114,2'
          Dst:             winpr_int_assert
    - 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:         21
      ICount:          92
      EdgeCount:       23
      CyclomaticComplexity: 4
      functionsReached:
        - cert_info_free
        - read_bignum
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/cert_common.c:92,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/cert_common.c:92,2'
              BranchSideFuncs:
                - winpr_int_assert
                - read_bignum
                - cert_info_free
                - read_bignum
            - BranchSide:      'libfreerdp/crypto/cert_common.c:92,2'
              BranchSideFuncs:
                - winpr_int_assert
        - 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:93,2'
              BranchSideFuncs:
                - winpr_int_assert
        - 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:             winpr_int_assert
        - Src:             'libfreerdp/crypto/cert_common.c:93,2'
          Dst:             winpr_int_assert
        - 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:         40
      ICount:          168
      EdgeCount:       47
      CyclomaticComplexity: 9
      functionsReached:
        - BN_bn2bin
        - BN_num_bits
        - crypto_reverse
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/cert_common.c:51,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/cert_common.c:51,2'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - BN_num_bits
                - BN_bn2bin
                - crypto_reverse
                - malloc
                - free
            - BranchSide:      'libfreerdp/crypto/cert_common.c:51,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/cert_common.c:52,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/cert_common.c:52,2'
              BranchSideFuncs:
                - winpr_int_assert
                - BN_num_bits
                - BN_bn2bin
                - crypto_reverse
                - malloc
                - free
            - BranchSide:      'libfreerdp/crypto/cert_common.c:52,2'
              BranchSideFuncs:
                - winpr_int_assert
        - 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:53,2'
              BranchSideFuncs:
                - winpr_int_assert
        - 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:             winpr_int_assert
        - Src:             'libfreerdp/crypto/cert_common.c:52,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/cert_common.c:53,2'
          Dst:             winpr_int_assert
        - 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:    bio_read_pem
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/privatekey.c'
      linkageType:     InternalLinkage
      functionLinenumber: 583
      functionLinenumberEnd: 637
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - bio
        - ppem
        - plength
      BBCount:         42
      ICount:          210
      EdgeCount:       52
      CyclomaticComplexity: 12
      functionsReached:
        - BIO_read
        - ERR_clear_error
        - WLog_Print_dbg_tag
        - realloc
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/privatekey.c:586,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:586,2'
              BranchSideFuncs:
                - winpr_int_assert
                - free
                - realloc
                - ERR_clear_error
                - BIO_read
                - WLog_Print_dbg_tag.614
            - BranchSide:      'libfreerdp/crypto/privatekey.c:586,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/privatekey.c:587,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:587,2'
              BranchSideFuncs:
                - free
                - realloc
                - ERR_clear_error
                - BIO_read
                - WLog_Print_dbg_tag.614
            - BranchSide:      'libfreerdp/crypto/privatekey.c:587,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/privatekey.c:595,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:596,4'
              BranchSideFuncs:
                - free
                - realloc
                - ERR_clear_error
                - BIO_read
                - WLog_Print_dbg_tag.614
            - BranchSide:      'libfreerdp/crypto/privatekey.c:598,2'
              BranchSideFuncs:
                - free
                - realloc
                - ERR_clear_error
                - BIO_read
                - WLog_Print_dbg_tag.614
        - Branch String:   'libfreerdp/crypto/privatekey.c:598,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:600,23'
              BranchSideFuncs:
                - realloc
                - free
                - ERR_clear_error
                - BIO_read
                - WLog_Print_dbg_tag.614
            - BranchSide:      'libfreerdp/crypto/privatekey.c:623,6'
              BranchSideFuncs:
                - free
        - Branch String:   'libfreerdp/crypto/privatekey.c:601,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:602,4'
              BranchSideFuncs:
                - ERR_clear_error
                - BIO_read
                - free
                - realloc
                - WLog_Print_dbg_tag.614
            - BranchSide:      'libfreerdp/crypto/privatekey.c:603,9'
              BranchSideFuncs:
                - ERR_clear_error
                - BIO_read
                - free
                - realloc
                - WLog_Print_dbg_tag.614
        - Branch String:   'libfreerdp/crypto/privatekey.c:608,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:610,4'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.614
                - free
            - BranchSide:      'libfreerdp/crypto/privatekey.c:614,7'
              BranchSideFuncs:
                - free
                - realloc
                - ERR_clear_error
                - BIO_read
                - WLog_Print_dbg_tag.614
        - Branch String:   'libfreerdp/crypto/privatekey.c:614,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:615,4'
              BranchSideFuncs:
                - free
            - BranchSide:      'libfreerdp/crypto/privatekey.c:617,21'
              BranchSideFuncs:
                - free
                - realloc
                - ERR_clear_error
                - BIO_read
                - WLog_Print_dbg_tag.614
        - Branch String:   'libfreerdp/crypto/privatekey.c:618,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:619,4'
              BranchSideFuncs:
                - free
            - BranchSide:      'libfreerdp/crypto/privatekey.c:620,10'
              BranchSideFuncs:
                - free
                - realloc
                - ERR_clear_error
                - BIO_read
                - WLog_Print_dbg_tag.614
        - Branch String:   'libfreerdp/crypto/privatekey.c:623,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:625,7'
              BranchSideFuncs:
                - free
            - BranchSide:      'libfreerdp/crypto/privatekey.c:629,10'
              BranchSideFuncs:
                - free
        - Branch String:   'libfreerdp/crypto/privatekey.c:625,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:626,4'
              BranchSideFuncs:
                - free
            - BranchSide:      'libfreerdp/crypto/privatekey.c:627,3'
              BranchSideFuncs:
                - free
        - Branch String:   'libfreerdp/crypto/privatekey.c:630,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:631,14'
              BranchSideFuncs:
                - free
            - BranchSide:      'libfreerdp/crypto/privatekey.c:632,5'
              BranchSideFuncs:
                - free
        - Branch String:   'libfreerdp/crypto/privatekey.c:634,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:634,6'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/privatekey.c:635,8'
              BranchSideFuncs:
                - free
      Callsites:
        - Src:             'libfreerdp/crypto/privatekey.c:586,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/privatekey.c:587,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/privatekey.c:600,15'
          Dst:             realloc
        - Src:             'libfreerdp/crypto/privatekey.c:605,3'
          Dst:             ERR_clear_error
        - Src:             'libfreerdp/crypto/privatekey.c:607,22'
          Dst:             BIO_read
        - Src:             'libfreerdp/crypto/privatekey.c:610,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 216
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - tag
        - log_level
        - line
        - file
        - fkt
      BBCount:         9
      ICount:          67
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintMessageVA
      functionUses:    13
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/wlog.h:206,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/wlog.h:207,30'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessageVA
            - BranchSide:      'winpr/include/winpr/wlog.h:209,26'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessageVA
        - Branch String:   'winpr/include/winpr/wlog.h:209,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/wlog.h:209,7'
              BranchSideFuncs:
                - WLog_PrintMessageVA
            - BranchSide:      'winpr/include/winpr/wlog.h:212,4'
              BranchSideFuncs:
                - WLog_PrintMessageVA
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:207,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:209,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:213,4'
          Dst:             WLog_PrintMessageVA
    - functionName:    freerdp_key_get_pem
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/privatekey.c'
      linkageType:     InternalLinkage
      functionLinenumber: 641
      functionLinenumberEnd: 678
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - key
        - plen
        - password
      BBCount:         20
      ICount:          117
      EdgeCount:       24
      CyclomaticComplexity: 6
      functionsReached:
        - BIO_free_all
        - BIO_new
        - BIO_s_mem
        - EVP_aes_256_xts
        - PEM_write_bio_PrivateKey
        - WLog_Print_dbg_tag
        - bio_read_pem
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/privatekey.c:642,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:642,2'
              BranchSideFuncs:
                - BIO_s_mem
                - BIO_new
                - WLog_Print_dbg_tag.614
                - PEM_write_bio_PrivateKey
                - bio_read_pem.607
                - BIO_free_all
                - WLog_Print_dbg_tag.614
                - EVP_aes_256_xts
            - BranchSide:      'libfreerdp/crypto/privatekey.c:642,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/privatekey.c:644,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:645,3'
              BranchSideFuncs:
                - BIO_s_mem
                - BIO_new
                - WLog_Print_dbg_tag.614
                - PEM_write_bio_PrivateKey
                - bio_read_pem.607
                - BIO_free_all
                - WLog_Print_dbg_tag.614
                - EVP_aes_256_xts
            - BranchSide:      'libfreerdp/crypto/privatekey.c:651,21'
              BranchSideFuncs:
                - BIO_s_mem
                - BIO_new
                - WLog_Print_dbg_tag.614
                - PEM_write_bio_PrivateKey
                - bio_read_pem.607
                - BIO_free_all
                - WLog_Print_dbg_tag.614
                - EVP_aes_256_xts
        - Branch String:   'libfreerdp/crypto/privatekey.c:653,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:655,3'
              BranchSideFuncs:
                - PEM_write_bio_PrivateKey
                - bio_read_pem.607
                - BIO_free_all
                - WLog_Print_dbg_tag.614
                - EVP_aes_256_xts
            - BranchSide:      'libfreerdp/crypto/privatekey.c:659,8'
              BranchSideFuncs:
                - PEM_write_bio_PrivateKey
                - bio_read_pem.607
                - BIO_free_all
                - WLog_Print_dbg_tag.614
                - EVP_aes_256_xts
        - Branch String:   'libfreerdp/crypto/privatekey.c:662,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:663,9'
              BranchSideFuncs:
                - EVP_aes_256_xts
                - PEM_write_bio_PrivateKey
                - bio_read_pem.607
                - BIO_free_all
                - WLog_Print_dbg_tag.614
            - BranchSide:      'libfreerdp/crypto/privatekey.c:665,46'
              BranchSideFuncs:
                - PEM_write_bio_PrivateKey
                - bio_read_pem.607
                - BIO_free_all
                - WLog_Print_dbg_tag.614
        - Branch String:   'libfreerdp/crypto/privatekey.c:667,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:669,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.614
                - BIO_free_all
            - BranchSide:      'libfreerdp/crypto/privatekey.c:673,21'
              BranchSideFuncs:
                - bio_read_pem.607
                - BIO_free_all
      Callsites:
        - Src:             'libfreerdp/crypto/privatekey.c:642,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/privatekey.c:651,21'
          Dst:             BIO_s_mem
        - Src:             'libfreerdp/crypto/privatekey.c:651,13'
          Dst:             BIO_new
        - Src:             'libfreerdp/crypto/privatekey.c:655,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/privatekey.c:663,9'
          Dst:             EVP_aes_256_xts
        - Src:             'libfreerdp/crypto/privatekey.c:665,21'
          Dst:             PEM_write_bio_PrivateKey
        - Src:             'libfreerdp/crypto/privatekey.c:669,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/privatekey.c:673,8'
          Dst:             bio_read_pem
        - Src:             'libfreerdp/crypto/privatekey.c:676,2'
          Dst:             BIO_free_all
    - functionName:    EVP_aes_256_xts
      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:    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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_key_digest_sign
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/privatekey.c'
      linkageType:     InternalLinkage
      functionLinenumber: 569
      functionLinenumberEnd: 580
      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:571,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:572,3'
              BranchSideFuncs:
                - winpr_DigestSign_Init
                - winpr_Digest_Free
            - BranchSide:      'libfreerdp/crypto/privatekey.c:574,29'
              BranchSideFuncs:
                - winpr_DigestSign_Init
                - winpr_Digest_Free
        - Branch String:   'libfreerdp/crypto/privatekey.c:574,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:576,21'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/privatekey.c:579,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/privatekey.c:570,29'
          Dst:             winpr_Digest_New
        - Src:             'libfreerdp/crypto/privatekey.c:574,7'
          Dst:             winpr_DigestSign_Init
        - Src:             'libfreerdp/crypto/privatekey.c:576,3'
          Dst:             winpr_Digest_Free
    - functionName:    freerdp_key_get_param
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/privatekey.c'
      linkageType:     InternalLinkage
      functionLinenumber: 481
      functionLinenumberEnd: 566
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - key
        - param
        - plength
      BBCount:         56
      ICount:          252
      EdgeCount:       64
      CyclomaticComplexity: 10
      functionsReached:
        - BN_bn2bin
        - BN_dup
        - BN_free
        - BN_num_bits
        - EVP_PKEY_get0_RSA
        - RSA_get0_d
        - RSA_get0_e
        - RSA_get0_n
        - calloc
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/privatekey.c:484,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:484,2'
              BranchSideFuncs:
                - winpr_int_assert
                - EVP_PKEY_get0_RSA
                - RSA_get0_n
                - BN_dup
                - BN_num_bits
                - calloc
                - BN_free
                - BN_bn2bin
                - winpr_int_assert
                - winpr_int_assert
                - free
                - RSA_get0_e
                - RSA_get0_d
            - BranchSide:      'libfreerdp/crypto/privatekey.c:484,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/privatekey.c:485,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:485,2'
              BranchSideFuncs:
                - EVP_PKEY_get0_RSA
                - RSA_get0_n
                - BN_dup
                - BN_num_bits
                - calloc
                - BN_free
                - BN_bn2bin
                - winpr_int_assert
                - winpr_int_assert
                - free
                - RSA_get0_e
                - RSA_get0_d
            - BranchSide:      'libfreerdp/crypto/privatekey.c:485,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/privatekey.c:513,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:514,4'
              BranchSideFuncs:
                - RSA_get0_n
                - BN_dup
                - BN_num_bits
                - calloc
                - BN_free
                - BN_bn2bin
                - winpr_int_assert
                - winpr_int_assert
                - free
                - RSA_get0_e
                - RSA_get0_d
            - BranchSide:      'libfreerdp/crypto/privatekey.c:516,17'
              BranchSideFuncs:
                - RSA_get0_n
                - BN_dup
                - BN_num_bits
                - calloc
                - BN_free
                - BN_bn2bin
                - winpr_int_assert
                - winpr_int_assert
                - free
                - RSA_get0_e
                - RSA_get0_d
        - Branch String:   'libfreerdp/crypto/privatekey.c:517,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:521,22'
              BranchSideFuncs:
                - RSA_get0_d
                - BN_dup
                - BN_num_bits
                - calloc
                - BN_free
                - BN_bn2bin
                - winpr_int_assert
                - winpr_int_assert
                - free
            - BranchSide:      'libfreerdp/crypto/privatekey.c:526,22'
              BranchSideFuncs:
                - RSA_get0_e
                - BN_dup
                - BN_num_bits
                - calloc
                - BN_free
                - BN_bn2bin
                - winpr_int_assert
                - winpr_int_assert
                - free
            - BranchSide:      'libfreerdp/crypto/privatekey.c:531,22'
              BranchSideFuncs:
                - RSA_get0_n
                - BN_dup
                - BN_num_bits
                - calloc
                - BN_free
                - BN_bn2bin
                - winpr_int_assert
                - winpr_int_assert
                - free
            - BranchSide:      'libfreerdp/crypto/privatekey.c:535,5'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/privatekey.c:537,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:538,4'
              BranchSideFuncs:
                - BN_dup
                - BN_num_bits
                - calloc
                - BN_free
                - BN_bn2bin
                - winpr_int_assert
                - winpr_int_assert
                - free
            - BranchSide:      'libfreerdp/crypto/privatekey.c:539,15'
              BranchSideFuncs:
                - BN_dup
                - BN_num_bits
                - calloc
                - BN_free
                - BN_bn2bin
                - winpr_int_assert
                - winpr_int_assert
                - free
        - Branch String:   'libfreerdp/crypto/privatekey.c:540,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:541,4'
              BranchSideFuncs:
                - BN_num_bits
                - calloc
                - BN_free
                - BN_bn2bin
                - winpr_int_assert
                - winpr_int_assert
                - free
            - BranchSide:      'libfreerdp/crypto/privatekey.c:545,21'
              BranchSideFuncs:
                - BN_num_bits
                - calloc
                - BN_free
                - BN_bn2bin
                - winpr_int_assert
                - winpr_int_assert
                - free
        - Branch String:   'libfreerdp/crypto/privatekey.c:546,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:547,3'
              BranchSideFuncs:
                - BN_free
            - BranchSide:      'libfreerdp/crypto/privatekey.c:549,36'
              BranchSideFuncs:
                - calloc
                - BN_free
                - BN_bn2bin
                - winpr_int_assert
                - winpr_int_assert
                - free
        - Branch String:   'libfreerdp/crypto/privatekey.c:551,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:552,3'
              BranchSideFuncs:
                - BN_bn2bin
                - winpr_int_assert
                - winpr_int_assert
                - BN_free
                - free
            - BranchSide:      'libfreerdp/crypto/privatekey.c:554,30'
              BranchSideFuncs:
                - BN_bn2bin
                - winpr_int_assert
                - winpr_int_assert
                - BN_free
                - free
        - Branch String:   'libfreerdp/crypto/privatekey.c:555,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:557,8'
              BranchSideFuncs:
                - free
                - BN_free
            - BranchSide:      'libfreerdp/crypto/privatekey.c:561,14'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - BN_free
        - Branch String:   'libfreerdp/crypto/privatekey.c:561,14'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:561,14'
              BranchSideFuncs:
                - winpr_int_assert
                - BN_free
            - BranchSide:      'libfreerdp/crypto/privatekey.c:561,14'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/privatekey.c:561,14'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:561,14'
              BranchSideFuncs:
                - winpr_int_assert
                - BN_free
            - BranchSide:      'libfreerdp/crypto/privatekey.c:561,14'
              BranchSideFuncs:
                - winpr_int_assert
                - BN_free
        - Branch String:   'libfreerdp/crypto/privatekey.c:561,14'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:561,14'
              BranchSideFuncs:
                - BN_free
            - BranchSide:      'libfreerdp/crypto/privatekey.c:561,14'
              BranchSideFuncs:
                - winpr_int_assert
                - BN_free
        - Branch String:   'libfreerdp/crypto/privatekey.c:561,14'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:561,14'
              BranchSideFuncs:
                - winpr_int_assert
                - BN_free
            - BranchSide:      'libfreerdp/crypto/privatekey.c:561,14'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/privatekey.c:561,14'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:561,14'
              BranchSideFuncs:
                - BN_free
            - BranchSide:      'libfreerdp/crypto/privatekey.c:561,14'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'libfreerdp/crypto/privatekey.c:484,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/privatekey.c:485,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/privatekey.c:512,20'
          Dst:             EVP_PKEY_get0_RSA
        - Src:             'libfreerdp/crypto/privatekey.c:521,11'
          Dst:             RSA_get0_d
        - Src:             'libfreerdp/crypto/privatekey.c:526,11'
          Dst:             RSA_get0_e
        - Src:             'libfreerdp/crypto/privatekey.c:531,11'
          Dst:             RSA_get0_n
        - Src:             'libfreerdp/crypto/privatekey.c:539,8'
          Dst:             BN_dup
        - Src:             'libfreerdp/crypto/privatekey.c:545,21'
          Dst:             BN_num_bits
        - Src:             'libfreerdp/crypto/privatekey.c:550,8'
          Dst:             calloc
        - Src:             'libfreerdp/crypto/privatekey.c:554,20'
          Dst:             BN_bn2bin
        - Src:             'libfreerdp/crypto/privatekey.c:561,14'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/privatekey.c:561,14'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/privatekey.c:564,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: 393
      functionLinenumberEnd: 478
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - key
        - type
        - count
      BBCount:         21
      ICount:          177
      EdgeCount:       29
      CyclomaticComplexity: 10
      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
        - WLog_Print_dbg_tag
        - strncmp
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/privatekey.c:396,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:398,3'
              BranchSideFuncs:
                - strncmp
                - BN_secure_new
                - 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
                - WLog_Print_dbg_tag.614
                - WLog_Print_dbg_tag.614
            - BranchSide:      'libfreerdp/crypto/privatekey.c:401,21'
              BranchSideFuncs:
                - strncmp
                - BN_secure_new
                - 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
                - WLog_Print_dbg_tag.614
                - WLog_Print_dbg_tag.614
        - Branch String:   'libfreerdp/crypto/privatekey.c:401,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:403,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.614
            - BranchSide:      'libfreerdp/crypto/privatekey.c:406,6'
              BranchSideFuncs:
                - BN_secure_new
                - 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
                - WLog_Print_dbg_tag.614
        - Branch String:   'libfreerdp/crypto/privatekey.c:406,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:408,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.614
            - BranchSide:      'libfreerdp/crypto/privatekey.c:412,2'
              BranchSideFuncs:
                - BN_secure_new
                - 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:413,25'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:413,25'
              BranchSideFuncs:
                - BN_secure_new
                - 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:413,25'
              BranchSideFuncs:
                - BN_secure_new
                - 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:424,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:425,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:427,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:429,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:431,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:435,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:439,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:440,4'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/privatekey.c:444,16'
              BranchSideFuncs:
                - EVP_PKEY_free
                - EVP_PKEY_new
                - EVP_PKEY_assign
                - EVP_PKEY_free
                - RSA_free
        - Branch String:   'libfreerdp/crypto/privatekey.c:447,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:449,17'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/privatekey.c:455,5'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/privatekey.c:398,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/privatekey.c:401,6'
          Dst:             strncmp
        - Src:             'libfreerdp/crypto/privatekey.c:403,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/privatekey.c:408,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/privatekey.c:422,16'
          Dst:             BN_secure_new
        - Src:             'libfreerdp/crypto/privatekey.c:427,9'
          Dst:             RSA_new
        - Src:             'libfreerdp/crypto/privatekey.c:431,4'
          Dst:             BN_clear_free
        - Src:             'libfreerdp/crypto/privatekey.c:435,3'
          Dst:             BN_set_word
        - Src:             'libfreerdp/crypto/privatekey.c:436,19'
          Dst:             RSA_generate_key_ex
        - Src:             'libfreerdp/crypto/privatekey.c:437,3'
          Dst:             BN_clear_free
        - Src:             'libfreerdp/crypto/privatekey.c:444,2'
          Dst:             EVP_PKEY_free
        - Src:             'libfreerdp/crypto/privatekey.c:445,13'
          Dst:             EVP_PKEY_new
        - Src:             'libfreerdp/crypto/privatekey.c:447,7'
          Dst:             EVP_PKEY_assign
        - Src:             'libfreerdp/crypto/privatekey.c:449,3'
          Dst:             EVP_PKEY_free
        - Src:             'libfreerdp/crypto/privatekey.c:451,3'
          Dst:             RSA_free
    - 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:    7
      BranchProfiles:  []
      Callsites:       []
    - 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: 95
      functionLinenumberEnd: 119
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - key
      BBCount:         11
      ICount:          72
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - BIO_free_all
        - BIO_new
        - BIO_s_secmem
        - PEM_read_bio_RSAPrivateKey
        - PEM_write_bio_PrivateKey
        - WLog_Print_dbg_tag
        - freerdp_key_is_rsa
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/privatekey.c:96,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:98,3'
              BranchSideFuncs:
                - BIO_s_secmem
                - BIO_new
                - PEM_write_bio_PrivateKey
                - PEM_read_bio_RSAPrivateKey
                - BIO_free_all
            - BranchSide:      'libfreerdp/crypto/privatekey.c:102,7'
              BranchSideFuncs:
                - BIO_s_secmem
                - BIO_new
                - PEM_write_bio_PrivateKey
                - PEM_read_bio_RSAPrivateKey
                - BIO_free_all
        - Branch String:   'libfreerdp/crypto/privatekey.c:110,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:111,3'
              BranchSideFuncs:
                - PEM_write_bio_PrivateKey
                - PEM_read_bio_RSAPrivateKey
                - BIO_free_all
            - BranchSide:      'libfreerdp/crypto/privatekey.c:112,42'
              BranchSideFuncs:
                - PEM_write_bio_PrivateKey
                - PEM_read_bio_RSAPrivateKey
                - BIO_free_all
        - Branch String:   'libfreerdp/crypto/privatekey.c:113,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:114,3'
              BranchSideFuncs:
                - BIO_free_all
            - BranchSide:      'libfreerdp/crypto/privatekey.c:115,35'
              BranchSideFuncs:
                - PEM_read_bio_RSAPrivateKey
                - BIO_free_all
      Callsites:
        - Src:             'libfreerdp/crypto/privatekey.c:96,7'
          Dst:             freerdp_key_is_rsa
        - Src:             'libfreerdp/crypto/privatekey.c:98,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/privatekey.c:107,6'
          Dst:             BIO_s_secmem
        - Src:             'libfreerdp/crypto/privatekey.c:103,13'
          Dst:             BIO_new
        - Src:             'libfreerdp/crypto/privatekey.c:112,17'
          Dst:             PEM_write_bio_PrivateKey
        - Src:             'libfreerdp/crypto/privatekey.c:115,8'
          Dst:             PEM_read_bio_RSAPrivateKey
        - Src:             'libfreerdp/crypto/privatekey.c:117,2'
          Dst:             BIO_free_all
    - functionName:    freerdp_key_is_rsa
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/privatekey.c'
      linkageType:     InternalLinkage
      functionLinenumber: 366
      functionLinenumberEnd: 373
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - key
      BBCount:         18
      ICount:          63
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - EVP_PKEY_id
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/privatekey.c:367,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:367,2'
              BranchSideFuncs:
                - winpr_int_assert
                - EVP_PKEY_id
            - BranchSide:      'libfreerdp/crypto/privatekey.c:367,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/privatekey.c:368,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:369,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/privatekey.c:371,2'
              BranchSideFuncs:
                - winpr_int_assert
                - EVP_PKEY_id
        - Branch String:   'libfreerdp/crypto/privatekey.c:371,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:371,2'
              BranchSideFuncs:
                - EVP_PKEY_id
            - BranchSide:      'libfreerdp/crypto/privatekey.c:371,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'libfreerdp/crypto/privatekey.c:367,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/privatekey.c:371,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/privatekey.c:372,10'
          Dst:             EVP_PKEY_id
    - 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: 376
      functionLinenumberEnd: 389
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - key
      BBCount:         27
      ICount:          110
      EdgeCount:       31
      CyclomaticComplexity: 6
      functionsReached:
        - RSA_bits
        - RSA_free
        - evp_pkey_to_rsa
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/privatekey.c:380,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:382,17'
              BranchSideFuncs:
                - RSA_bits
                - RSA_free
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'libfreerdp/crypto/privatekey.c:389,9'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/privatekey.c:389,9'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:389,9'
              BranchSideFuncs:
                - winpr_int_assert
            - BranchSide:      'libfreerdp/crypto/privatekey.c:389,9'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/privatekey.c:389,9'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:389,9'
              BranchSideFuncs:
                - winpr_int_assert
            - BranchSide:      'libfreerdp/crypto/privatekey.c:389,9'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/privatekey.c:389,9'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:389,9'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/privatekey.c:389,9'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/privatekey.c:389,9'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:389,9'
              BranchSideFuncs:
                - winpr_int_assert
            - BranchSide:      'libfreerdp/crypto/privatekey.c:389,9'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/privatekey.c:389,9'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:389,9'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/privatekey.c:389,9'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'libfreerdp/crypto/privatekey.c:379,13'
          Dst:             evp_pkey_to_rsa
        - Src:             'libfreerdp/crypto/privatekey.c:382,8'
          Dst:             RSA_bits
        - Src:             'libfreerdp/crypto/privatekey.c:383,3'
          Dst:             RSA_free
        - Src:             'libfreerdp/crypto/privatekey.c:389,9'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/privatekey.c:389,9'
          Dst:             winpr_int_assert
    - 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: 356
      functionLinenumberEnd: 362
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - key
      BBCount:         15
      ICount:          50
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - EVP_PKEY_up_ref
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/privatekey.c:357,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:357,2'
              BranchSideFuncs:
                - winpr_int_assert
                - EVP_PKEY_up_ref
            - BranchSide:      'libfreerdp/crypto/privatekey.c:357,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/privatekey.c:360,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:360,2'
              BranchSideFuncs:
                - EVP_PKEY_up_ref
            - BranchSide:      'libfreerdp/crypto/privatekey.c:360,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'libfreerdp/crypto/privatekey.c:357,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/privatekey.c:360,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/privatekey.c:361,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: 341
      functionLinenumberEnd: 353
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - key
        - plength
      BBCount:         18
      ICount:          73
      EdgeCount:       21
      CyclomaticComplexity: 5
      functionsReached:
        - freerdp_key_is_rsa
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/privatekey.c:342,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:342,2'
              BranchSideFuncs:
                - freerdp_key_is_rsa
            - BranchSide:      'libfreerdp/crypto/privatekey.c:342,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/privatekey.c:343,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:345,7'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/privatekey.c:350,6'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/privatekey.c:345,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:346,5'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/privatekey.c:347,3'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/privatekey.c:350,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:351,14'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/privatekey.c:352,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/privatekey.c:342,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/privatekey.c:343,7'
          Dst:             freerdp_key_is_rsa
    - functionName:    freerdp_key_get_info
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/privatekey.c'
      linkageType:     InternalLinkage
      functionLinenumber: 333
      functionLinenumberEnd: 338
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - key
      BBCount:         12
      ICount:          45
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - freerdp_key_is_rsa
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/privatekey.c:334,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:334,2'
              BranchSideFuncs:
                - freerdp_key_is_rsa
            - BranchSide:      'libfreerdp/crypto/privatekey.c:334,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/privatekey.c:335,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:336,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/privatekey.c:337,10'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/privatekey.c:334,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/privatekey.c:335,7'
          Dst:             freerdp_key_is_rsa
    - functionName:    freerdp_key_clone
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/privatekey.c'
      linkageType:     InternalLinkage
      functionLinenumber: 279
      functionLinenumberEnd: 317
      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:280,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:281,3'
              BranchSideFuncs:
                - calloc
                - cert_info_clone
                - freerdp_key_free
                - malloc
                - EVP_PKEY_up_ref
            - BranchSide:      'libfreerdp/crypto/privatekey.c:283,40'
              BranchSideFuncs:
                - calloc
                - cert_info_clone
                - freerdp_key_free
                - malloc
                - EVP_PKEY_up_ref
        - Branch String:   'libfreerdp/crypto/privatekey.c:285,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:286,3'
              BranchSideFuncs:
                - cert_info_clone
                - freerdp_key_free
                - malloc
                - EVP_PKEY_up_ref
            - BranchSide:      'libfreerdp/crypto/privatekey.c:288,6'
              BranchSideFuncs:
                - cert_info_clone
                - freerdp_key_free
                - malloc
                - EVP_PKEY_up_ref
        - Branch String:   'libfreerdp/crypto/privatekey.c:288,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:290,15'
              BranchSideFuncs:
                - freerdp_key_free
                - EVP_PKEY_up_ref
                - cert_info_clone
                - malloc
            - BranchSide:      'libfreerdp/crypto/privatekey.c:296,6'
              BranchSideFuncs:
                - cert_info_clone
                - freerdp_key_free
                - malloc
        - Branch String:   'libfreerdp/crypto/privatekey.c:291,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:292,4'
              BranchSideFuncs:
                - EVP_PKEY_up_ref
                - cert_info_clone
                - freerdp_key_free
                - malloc
            - BranchSide:      'libfreerdp/crypto/privatekey.c:293,19'
              BranchSideFuncs:
                - EVP_PKEY_up_ref
                - cert_info_clone
                - freerdp_key_free
                - malloc
        - Branch String:   'libfreerdp/crypto/privatekey.c:296,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:298,41'
              BranchSideFuncs:
                - malloc
                - freerdp_key_free
                - cert_info_clone
            - BranchSide:      'libfreerdp/crypto/privatekey.c:307,24'
              BranchSideFuncs:
                - cert_info_clone
                - freerdp_key_free
        - Branch String:   'libfreerdp/crypto/privatekey.c:300,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:301,4'
              BranchSideFuncs:
                - cert_info_clone
                - freerdp_key_free
            - BranchSide:      'libfreerdp/crypto/privatekey.c:303,3'
              BranchSideFuncs:
                - cert_info_clone
                - freerdp_key_free
        - Branch String:   'libfreerdp/crypto/privatekey.c:307,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:308,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/privatekey.c:310,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/privatekey.c:283,40'
          Dst:             calloc
        - Src:             'libfreerdp/crypto/privatekey.c:293,3'
          Dst:             EVP_PKEY_up_ref
        - Src:             'libfreerdp/crypto/privatekey.c:307,7'
          Dst:             cert_info_clone
        - Src:             'libfreerdp/crypto/privatekey.c:314,2'
          Dst:             freerdp_key_free
    - functionName:    freerdp_key_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/privatekey.c'
      linkageType:     InternalLinkage
      functionLinenumber: 320
      functionLinenumberEnd: 330
      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:321,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:322,3'
              BranchSideFuncs:
                - EVP_PKEY_free
                - free
                - cert_info_free
                - free
            - BranchSide:      'libfreerdp/crypto/privatekey.c:324,16'
              BranchSideFuncs:
                - EVP_PKEY_free
                - free
                - cert_info_free
                - free
        - Branch String:   'libfreerdp/crypto/privatekey.c:325,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:326,10'
              BranchSideFuncs:
                - free
                - cert_info_free
                - free
            - BranchSide:      'libfreerdp/crypto/privatekey.c:327,7'
              BranchSideFuncs:
                - free
                - cert_info_free
                - free
      Callsites:
        - Src:             'libfreerdp/crypto/privatekey.c:324,2'
          Dst:             EVP_PKEY_free
        - Src:             'libfreerdp/crypto/privatekey.c:328,2'
          Dst:             cert_info_free
    - functionName:    freerdp_key_new_from_file_enc
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/privatekey.c'
      linkageType:     InternalLinkage
      functionLinenumber: 257
      functionLinenumberEnd: 271
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - keyfile
        - password
      BBCount:         14
      ICount:          75
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - evp_pkey_utils_from_pem
        - freerdp_key_free
        - freerdp_key_new
        - key_read_private
        - strlen
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/privatekey.c:259,11'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:259,15'
              BranchSideFuncs:
                - freerdp_key_free
                - strlen
                - evp_pkey_utils_from_pem
                - key_read_private
            - BranchSide:      'libfreerdp/crypto/privatekey.c:260,3'
              BranchSideFuncs:
                - freerdp_key_free
        - Branch String:   'libfreerdp/crypto/privatekey.c:259,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:260,3'
              BranchSideFuncs:
                - strlen
                - evp_pkey_utils_from_pem
                - freerdp_key_free
                - key_read_private
            - BranchSide:      'libfreerdp/crypto/privatekey.c:262,37'
              BranchSideFuncs:
                - strlen
                - evp_pkey_utils_from_pem
                - freerdp_key_free
                - key_read_private
        - Branch String:   'libfreerdp/crypto/privatekey.c:263,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:264,3'
              BranchSideFuncs:
                - key_read_private
                - freerdp_key_free
            - BranchSide:      'libfreerdp/crypto/privatekey.c:265,24'
              BranchSideFuncs:
                - key_read_private
                - freerdp_key_free
        - Branch String:   'libfreerdp/crypto/privatekey.c:265,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:266,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/privatekey.c:267,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/privatekey.c:258,23'
          Dst:             freerdp_key_new
        - Src:             'libfreerdp/crypto/privatekey.c:262,46'
          Dst:             strlen
        - Src:             'libfreerdp/crypto/privatekey.c:262,13'
          Dst:             evp_pkey_utils_from_pem
        - Src:             'libfreerdp/crypto/privatekey.c:265,7'
          Dst:             key_read_private
        - Src:             'libfreerdp/crypto/privatekey.c:269,2'
          Dst:             freerdp_key_free
    - functionName:    freerdp_key_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/privatekey.c'
      linkageType:     InternalLinkage
      functionLinenumber: 274
      functionLinenumberEnd: 275
      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:275,9'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:275,9'
              BranchSideFuncs:
                - calloc
            - BranchSide:      'libfreerdp/crypto/privatekey.c:275,9'
              BranchSideFuncs:
                - calloc
      Callsites:
        - Src:             'libfreerdp/crypto/privatekey.c:275,9'
          Dst:             calloc
    - functionName:    evp_pkey_utils_from_pem
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/privatekey.c'
      linkageType:     InternalLinkage
      functionLinenumber: 124
      functionLinenumberEnd: 148
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - data
        - len
        - fromFile
        - password
      BBCount:         14
      ICount:          98
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - BIO_free_all
        - BIO_new_file
        - BIO_new_mem_buf
        - PEM_read_bio_PrivateKey
        - WLog_Print_dbg_tag
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/privatekey.c:127,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:128,22'
              BranchSideFuncs:
                - BIO_new_file
                - WLog_Print_dbg_tag.614
                - PEM_read_bio_PrivateKey
                - BIO_free_all
                - WLog_Print_dbg_tag.614
            - BranchSide:      'libfreerdp/crypto/privatekey.c:131,7'
              BranchSideFuncs:
                - BIO_new_mem_buf
                - WLog_Print_dbg_tag.614
                - PEM_read_bio_PrivateKey
                - BIO_free_all
                - WLog_Print_dbg_tag.614
        - Branch String:   'libfreerdp/crypto/privatekey.c:131,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:132,4'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/privatekey.c:133,25'
              BranchSideFuncs:
                - BIO_new_mem_buf
                - WLog_Print_dbg_tag.614
                - PEM_read_bio_PrivateKey
                - BIO_free_all
                - WLog_Print_dbg_tag.614
        - Branch String:   'libfreerdp/crypto/privatekey.c:136,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:138,3'
              BranchSideFuncs:
                - PEM_read_bio_PrivateKey
                - BIO_free_all
                - WLog_Print_dbg_tag.614
            - BranchSide:      'libfreerdp/crypto/privatekey.c:142,32'
              BranchSideFuncs:
                - PEM_read_bio_PrivateKey
                - BIO_free_all
                - WLog_Print_dbg_tag.614
        - Branch String:   'libfreerdp/crypto/privatekey.c:144,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:145,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/privatekey.c:147,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/privatekey.c:128,9'
          Dst:             BIO_new_file
        - Src:             'libfreerdp/crypto/privatekey.c:133,9'
          Dst:             BIO_new_mem_buf
        - Src:             'libfreerdp/crypto/privatekey.c:138,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/privatekey.c:142,8'
          Dst:             PEM_read_bio_PrivateKey
        - Src:             'libfreerdp/crypto/privatekey.c:143,2'
          Dst:             BIO_free_all
        - Src:             'libfreerdp/crypto/privatekey.c:145,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    key_read_private
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/privatekey.c'
      linkageType:     InternalLinkage
      functionLinenumber: 151
      functionLinenumberEnd: 228
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - key
      BBCount:         31
      ICount:          157
      EdgeCount:       35
      CyclomaticComplexity: 6
      functionsReached:
        - BN_num_bits
        - RSA_check_key
        - RSA_free
        - RSA_get0_key
        - WLog_Print_dbg_tag
        - __errno_location
        - cert_info_create
        - evp_pkey_to_rsa
        - freerdp_key_is_rsa
        - read_bignum
        - winpr_int_assert
        - winpr_strerror
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/privatekey.c:154,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:154,2'
              BranchSideFuncs:
                - winpr_int_assert
                - freerdp_key_is_rsa
                - evp_pkey_to_rsa
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.614
                - RSA_free
                - RSA_check_key
                - RSA_get0_key
                - BN_num_bits
                - read_bignum
                - cert_info_create
                - WLog_Print_dbg_tag.614
                - WLog_Print_dbg_tag.614
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.614
            - BranchSide:      'libfreerdp/crypto/privatekey.c:154,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/privatekey.c:155,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:155,2'
              BranchSideFuncs:
                - freerdp_key_is_rsa
                - evp_pkey_to_rsa
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.614
                - RSA_free
                - RSA_check_key
                - RSA_get0_key
                - BN_num_bits
                - read_bignum
                - cert_info_create
                - WLog_Print_dbg_tag.614
                - WLog_Print_dbg_tag.614
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.614
            - BranchSide:      'libfreerdp/crypto/privatekey.c:155,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'libfreerdp/crypto/privatekey.c:158,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:159,3'
              BranchSideFuncs:
                - evp_pkey_to_rsa
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.614
                - RSA_free
                - RSA_check_key
                - RSA_get0_key
                - BN_num_bits
                - read_bignum
                - cert_info_create
                - WLog_Print_dbg_tag.614
                - WLog_Print_dbg_tag.614
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.614
            - BranchSide:      'libfreerdp/crypto/privatekey.c:162,29'
              BranchSideFuncs:
                - evp_pkey_to_rsa
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.614
                - RSA_free
                - RSA_check_key
                - RSA_get0_key
                - BN_num_bits
                - read_bignum
                - cert_info_create
                - WLog_Print_dbg_tag.614
                - WLog_Print_dbg_tag.614
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.614
        - Branch String:   'libfreerdp/crypto/privatekey.c:163,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:165,8'
              BranchSideFuncs:
                - RSA_check_key
                - RSA_get0_key
                - BN_num_bits
                - read_bignum
                - RSA_free
                - cert_info_create
                - WLog_Print_dbg_tag.614
                - WLog_Print_dbg_tag.614
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.614
            - BranchSide:      'libfreerdp/crypto/privatekey.c:171,24'
              BranchSideFuncs:
                - RSA_check_key
                - RSA_get0_key
                - BN_num_bits
                - read_bignum
                - RSA_free
                - cert_info_create
                - WLog_Print_dbg_tag.614
                - WLog_Print_dbg_tag.614
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.614
        - Branch String:   'libfreerdp/crypto/privatekey.c:171,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:174,4'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.614
                - RSA_free
            - BranchSide:      'libfreerdp/crypto/privatekey.c:179,4'
              BranchSideFuncs:
                - RSA_get0_key
                - BN_num_bits
                - read_bignum
                - RSA_free
                - cert_info_create
                - WLog_Print_dbg_tag.614
            - BranchSide:      'libfreerdp/crypto/privatekey.c:183,9'
              BranchSideFuncs:
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.614
                - RSA_free
        - Branch String:   'libfreerdp/crypto/privatekey.c:207,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:209,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.614
                - RSA_free
            - BranchSide:      'libfreerdp/crypto/privatekey.c:213,20'
              BranchSideFuncs:
                - read_bignum
                - RSA_free
                - cert_info_create
        - Branch String:   'libfreerdp/crypto/privatekey.c:213,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:214,3'
              BranchSideFuncs:
                - cert_info_create
                - RSA_free
            - BranchSide:      'libfreerdp/crypto/privatekey.c:216,25'
              BranchSideFuncs:
                - cert_info_create
                - RSA_free
        - Branch String:   'libfreerdp/crypto/privatekey.c:216,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:217,3'
              BranchSideFuncs:
                - RSA_free
            - BranchSide:      'libfreerdp/crypto/privatekey.c:218,5'
              BranchSideFuncs:
                - RSA_free
      Callsites:
        - Src:             'libfreerdp/crypto/privatekey.c:154,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/privatekey.c:155,2'
          Dst:             winpr_int_assert
        - Src:             'libfreerdp/crypto/privatekey.c:158,7'
          Dst:             freerdp_key_is_rsa
        - Src:             'libfreerdp/crypto/privatekey.c:162,13'
          Dst:             evp_pkey_to_rsa
        - Src:             'libfreerdp/crypto/privatekey.c:166,3'
          Dst:             __errno_location
        - Src:             'libfreerdp/crypto/privatekey.c:166,3'
          Dst:             winpr_strerror
        - Src:             'libfreerdp/crypto/privatekey.c:166,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/privatekey.c:171,10'
          Dst:             RSA_check_key
        - Src:             'libfreerdp/crypto/privatekey.c:174,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/privatekey.c:184,4'
          Dst:             __errno_location
        - Src:             'libfreerdp/crypto/privatekey.c:184,4'
          Dst:             winpr_strerror
        - Src:             'libfreerdp/crypto/privatekey.c:184,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/privatekey.c:194,2'
          Dst:             RSA_get0_key
        - Src:             'libfreerdp/crypto/privatekey.c:207,6'
          Dst:             BN_num_bits
        - Src:             'libfreerdp/crypto/privatekey.c:209,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'libfreerdp/crypto/privatekey.c:213,7'
          Dst:             read_bignum
        - Src:             'libfreerdp/crypto/privatekey.c:216,7'
          Dst:             cert_info_create
        - Src:             'libfreerdp/crypto/privatekey.c:221,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_file
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/privatekey.c'
      linkageType:     InternalLinkage
      functionLinenumber: 252
      functionLinenumberEnd: 253
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - keyfile
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - freerdp_key_new_from_file_enc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/privatekey.c:253,9'
          Dst:             freerdp_key_new_from_file_enc
    - functionName:    freerdp_key_new_from_pem_enc
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/privatekey.c'
      linkageType:     InternalLinkage
      functionLinenumber: 236
      functionLinenumberEnd: 249
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pem
        - password
      BBCount:         14
      ICount:          75
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - evp_pkey_utils_from_pem
        - freerdp_key_free
        - freerdp_key_new
        - key_read_private
        - strlen
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/privatekey.c:238,11'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:238,15'
              BranchSideFuncs:
                - freerdp_key_free
                - strlen
                - evp_pkey_utils_from_pem
                - key_read_private
            - BranchSide:      'libfreerdp/crypto/privatekey.c:239,3'
              BranchSideFuncs:
                - freerdp_key_free
        - Branch String:   'libfreerdp/crypto/privatekey.c:238,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:239,3'
              BranchSideFuncs:
                - strlen
                - evp_pkey_utils_from_pem
                - freerdp_key_free
                - key_read_private
            - BranchSide:      'libfreerdp/crypto/privatekey.c:240,37'
              BranchSideFuncs:
                - strlen
                - evp_pkey_utils_from_pem
                - freerdp_key_free
                - key_read_private
        - Branch String:   'libfreerdp/crypto/privatekey.c:241,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:242,3'
              BranchSideFuncs:
                - key_read_private
                - freerdp_key_free
            - BranchSide:      'libfreerdp/crypto/privatekey.c:243,24'
              BranchSideFuncs:
                - key_read_private
                - freerdp_key_free
        - Branch String:   'libfreerdp/crypto/privatekey.c:243,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:244,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/privatekey.c:245,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/privatekey.c:237,23'
          Dst:             freerdp_key_new
        - Src:             'libfreerdp/crypto/privatekey.c:240,42'
          Dst:             strlen
        - Src:             'libfreerdp/crypto/privatekey.c:240,13'
          Dst:             evp_pkey_utils_from_pem
        - Src:             'libfreerdp/crypto/privatekey.c:243,7'
          Dst:             key_read_private
        - Src:             'libfreerdp/crypto/privatekey.c:247,2'
          Dst:             freerdp_key_free
    - functionName:    freerdp_key_new_from_pem
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/privatekey.c'
      linkageType:     InternalLinkage
      functionLinenumber: 231
      functionLinenumberEnd: 232
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - pem
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - freerdp_key_new_from_pem_enc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/privatekey.c:232,9'
          Dst:             freerdp_key_new_from_pem_enc
    - functionName:    GetStdHandle_Uninit
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1091
      functionLinenumberEnd: 1093
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          13
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - FileCloseHandleInt
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/file.c:1092,21'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1092,21'
              BranchSideFuncs:
                - FileCloseHandleInt
            - BranchSide:      'winpr/libwinpr/file/file.c:1092,21'
              BranchSideFuncs:
                - FileCloseHandleInt
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:1092,2'
          Dst:             FileCloseHandleInt
    - functionName:    FileCloseHandleInt
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 79
      functionLinenumberEnd: 106
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - handle
        - force
      BBCount:         17
      ICount:          94
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - FileIsHandled
        - fclose
        - fileno
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/file.c:82,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:83,3'
              BranchSideFuncs:
                - free
                - free
                - fileno
                - fclose
            - BranchSide:      'winpr/libwinpr/file/file.c:85,7'
              BranchSideFuncs:
                - free
                - free
                - fileno
                - fclose
        - Branch String:   'winpr/libwinpr/file/file.c:85,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:87,7'
              BranchSideFuncs:
                - free
                - free
                - fileno
                - fclose
            - BranchSide:      'winpr/libwinpr/file/file.c:93,6'
              BranchSideFuncs:
                - free
                - free
                - fileno
                - fclose
        - Branch String:   'winpr/libwinpr/file/file.c:87,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:89,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:91,2'
              BranchSideFuncs:
                - free
                - free
                - fileno
                - fclose
        - Branch String:   'winpr/libwinpr/file/file.c:93,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:96,14'
              BranchSideFuncs:
                - fileno
                - free
                - free
                - fclose
            - BranchSide:      'winpr/libwinpr/file/file.c:103,7'
              BranchSideFuncs:
                - free
                - free
        - Branch String:   'winpr/libwinpr/file/file.c:96,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:98,17'
              BranchSideFuncs:
                - fclose
                - free
                - free
            - BranchSide:      'winpr/libwinpr/file/file.c:101,2'
              BranchSideFuncs:
                - free
                - free
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:82,7'
          Dst:             FileIsHandled
        - Src:             'winpr/libwinpr/file/file.c:96,7'
          Dst:             fileno
        - Src:             'winpr/libwinpr/file/file.c:98,10'
          Dst:             fclose
    - functionName:    FileIsHandled
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 64
      functionLinenumberEnd: 65
      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:65,9'
          Dst:             WINPR_HANDLE_IS_HANDLED
    - 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:    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:    FileTimeToUS
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 620
      functionLinenumberEnd: 625
      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: 630
      functionLinenumberEnd: 636
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ftime
      BBCount:         9
      ICount:          47
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - FileTimeToUS
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/file.c:631,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:631,2'
              BranchSideFuncs:
                - FileTimeToUS
            - BranchSide:      'winpr/libwinpr/file/file.c:631,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:631,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/file/file.c:632,14'
          Dst:             FileTimeToUS
    - functionName:    _fseeki64
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wtypes.h'
      linkageType:     InternalLinkage
      functionLinenumber: 488
      functionLinenumberEnd: 489
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - fp
        - offset
        - origin
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fseeko64
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/wtypes.h:489,9'
          Dst:             fseeko64
    - functionName:    _ftelli64
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wtypes.h'
      linkageType:     InternalLinkage
      functionLinenumber: 494
      functionLinenumberEnd: 495
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - fp
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ftello64
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/wtypes.h:495,9'
          Dst:             ftello64
    - functionName:    FileGetFileInformationByHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 379
      functionLinenumberEnd: 441
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - hFile
        - lpFileInformation
      BBCount:         29
      ICount:          297
      EdgeCount:       39
      CyclomaticComplexity: 12
      functionsReached:
        - SetLastError
        - WLog_Print_dbg_tag
        - __errno_location
        - fileno
        - fstat64
        - map_posix_err
        - strlen
        - strrchr
        - winpr_strerror
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/file.c:385,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:386,3'
              BranchSideFuncs:
                - fileno
                - fstat64
                - strrchr
                - strlen
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/file.c:387,7'
              BranchSideFuncs:
                - fileno
                - fstat64
                - strrchr
                - strlen
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
        - Branch String:   'winpr/libwinpr/file/file.c:387,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:388,3'
              BranchSideFuncs:
                - fileno
                - fstat64
                - strrchr
                - strlen
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/file.c:390,19'
              BranchSideFuncs:
                - fileno
                - fstat64
                - strrchr
                - strlen
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
        - Branch String:   'winpr/libwinpr/file/file.c:390,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:392,8'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/file.c:399,2'
              BranchSideFuncs:
                - strrchr
                - strlen
        - Branch String:   'winpr/libwinpr/file/file.c:401,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:402,3'
              BranchSideFuncs:
                - strrchr
                - strlen
            - BranchSide:      'winpr/libwinpr/file/file.c:404,6'
              BranchSideFuncs:
                - strrchr
                - strlen
        - Branch String:   'winpr/libwinpr/file/file.c:404,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:405,3'
              BranchSideFuncs:
                - strrchr
                - strlen
            - BranchSide:      'winpr/libwinpr/file/file.c:407,20'
              BranchSideFuncs:
                - strrchr
                - strlen
        - Branch String:   'winpr/libwinpr/file/file.c:409,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:411,22'
              BranchSideFuncs:
                - strlen
            - BranchSide:      'winpr/libwinpr/file/file.c:418,11'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:414,21'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:414,25'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:416,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:414,41'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:414,45'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:416,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:414,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:415,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:416,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:418,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:419,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:424,7'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:390,12'
          Dst:             fileno
        - Src:             'winpr/libwinpr/file/file.c:390,6'
          Dst:             fstat64
        - Src:             'winpr/libwinpr/file/file.c:393,3'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:393,3'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:393,3'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/file/file.c:393,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/file/file.c:395,30'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:395,16'
          Dst:             map_posix_err
        - Src:             'winpr/libwinpr/file/file.c:395,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/file.c:407,12'
          Dst:             strrchr
        - Src:             'winpr/libwinpr/file/file.c:412,26'
          Dst:             strlen
    - 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:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 216
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - tag
        - log_level
        - line
        - file
        - fkt
      BBCount:         9
      ICount:          67
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintMessageVA
      functionUses:    22
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/wlog.h:206,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/wlog.h:207,30'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessageVA
            - BranchSide:      'winpr/include/winpr/wlog.h:209,26'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessageVA
        - Branch String:   'winpr/include/winpr/wlog.h:209,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/wlog.h:209,7'
              BranchSideFuncs:
                - WLog_PrintMessageVA
            - BranchSide:      'winpr/include/winpr/wlog.h:212,4'
              BranchSideFuncs:
                - WLog_PrintMessageVA
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:207,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:209,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:213,4'
          Dst:             WLog_PrintMessageVA
    - functionName:    map_posix_err
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 831
      functionLinenumberEnd: 889
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - fs_errno
      BBCount:         21
      ICount:          102
      EdgeCount:       41
      CyclomaticComplexity: 22
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_strerror
      functionUses:    23
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/file.c:836,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:839,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:846,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:846,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:846,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:846,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:852,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:852,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:852,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:856,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:860,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:864,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:868,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:872,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:876,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:881,9'
              BranchSideFuncs:
                - winpr_strerror
                - WLog_Print_dbg_tag.735
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:882,4'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/file/file.c:882,4'
          Dst:             WLog_Print_dbg_tag
    - 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: 641
      functionLinenumberEnd: 667
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - hFile
        - lpCreationTime
        - lpLastAccessTime
        - lpLastWriteTime
      BBCount:         14
      ICount:          121
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - SetLastError
        - WLog_Print_dbg_tag
        - __errno_location
        - fileno
        - filetimeToTimespec
        - futimens
        - map_posix_err
        - winpr_strerror
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/file.c:646,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:647,3'
              BranchSideFuncs:
                - fileno
                - futimens
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
                - filetimeToTimespec
                - filetimeToTimespec
            - BranchSide:      'winpr/libwinpr/file/file.c:649,6'
              BranchSideFuncs:
                - fileno
                - futimens
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
                - filetimeToTimespec
                - filetimeToTimespec
        - Branch String:   'winpr/libwinpr/file/file.c:649,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:650,3'
              BranchSideFuncs:
                - filetimeToTimespec
                - fileno
                - futimens
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
                - filetimeToTimespec
            - BranchSide:      'winpr/libwinpr/file/file.c:652,6'
              BranchSideFuncs:
                - fileno
                - futimens
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
                - filetimeToTimespec
        - Branch String:   'winpr/libwinpr/file/file.c:652,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:653,3'
              BranchSideFuncs:
                - filetimeToTimespec
                - fileno
                - futimens
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/file.c:656,33'
              BranchSideFuncs:
                - fileno
                - futimens
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
        - Branch String:   'winpr/libwinpr/file/file.c:657,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:659,8'
              BranchSideFuncs:
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/file.c:666,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:650,14'
          Dst:             filetimeToTimespec
        - Src:             'winpr/libwinpr/file/file.c:653,14'
          Dst:             filetimeToTimespec
        - Src:             'winpr/libwinpr/file/file.c:656,26'
          Dst:             fileno
        - Src:             'winpr/libwinpr/file/file.c:656,17'
          Dst:             futimens
        - Src:             'winpr/libwinpr/file/file.c:660,3'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:660,3'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/file/file.c:660,3'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:660,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/file/file.c:662,30'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:662,16'
          Dst:             map_posix_err
        - Src:             'winpr/libwinpr/file/file.c:662,3'
          Dst:             SetLastError
    - 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: 570
      functionLinenumberEnd: 617
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - hFile
        - dwReserved
        - nNumberOfBytesToUnlockLow
        - nNumberOfBytesToUnlockHigh
        - lpOverlapped
      BBCount:         12
      ICount:          100
      EdgeCount:       16
      CyclomaticComplexity: 6
      functionsReached:
        - SetLastError
        - WLog_Print_dbg_tag
        - __errno_location
        - fileno
        - flock
        - map_posix_err
        - winpr_strerror
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/file.c:576,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:578,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.735
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/file.c:583,7'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.735
                - fileno
                - flock
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
        - Branch String:   'winpr/libwinpr/file/file.c:583,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:584,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.735
                - fileno
                - flock
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/file.c:586,7'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.735
                - fileno
                - flock
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
        - Branch String:   'winpr/libwinpr/file/file.c:586,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:588,3'
              BranchSideFuncs:
                - fileno
                - flock
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/file.c:606,19'
              BranchSideFuncs:
                - fileno
                - flock
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
        - Branch String:   'winpr/libwinpr/file/file.c:606,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:608,8'
              BranchSideFuncs:
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/file.c:616,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:578,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/file/file.c:579,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/file.c:588,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/file/file.c:606,12'
          Dst:             fileno
        - Src:             'winpr/libwinpr/file/file.c:606,6'
          Dst:             flock
        - Src:             'winpr/libwinpr/file/file.c:609,3'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:609,3'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/file/file.c:609,3'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:609,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/file/file.c:611,30'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:611,16'
          Dst:             map_posix_err
        - Src:             'winpr/libwinpr/file/file.c:611,3'
          Dst:             SetLastError
    - 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: 523
      functionLinenumberEnd: 564
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - hFile
        - dwFileOffsetLow
        - dwFileOffsetHigh
        - nNumberOfBytesToUnlockLow
        - nNumberOfBytesToUnlockHigh
      BBCount:         10
      ICount:          90
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - SetLastError
        - WLog_Print_dbg_tag
        - __errno_location
        - fileno
        - flock
        - map_posix_err
        - winpr_strerror
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/file.c:529,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:530,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.735
                - fileno
                - flock
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/file.c:532,7'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.735
                - fileno
                - flock
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
        - Branch String:   'winpr/libwinpr/file/file.c:532,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:534,3'
              BranchSideFuncs:
                - fileno
                - flock
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/file.c:553,19'
              BranchSideFuncs:
                - fileno
                - flock
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
        - Branch String:   'winpr/libwinpr/file/file.c:553,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:555,8'
              BranchSideFuncs:
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/file.c:563,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:534,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/file/file.c:553,12'
          Dst:             fileno
        - Src:             'winpr/libwinpr/file/file.c:553,6'
          Dst:             flock
        - Src:             'winpr/libwinpr/file/file.c:556,3'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:556,3'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/file/file.c:556,3'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:556,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/file/file.c:558,30'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:558,16'
          Dst:             map_posix_err
        - Src:             'winpr/libwinpr/file/file.c:558,3'
          Dst:             SetLastError
    - functionName:    FileLockFileEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 447
      functionLinenumberEnd: 517
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - hFile
        - dwFlags
        - dwReserved
        - nNumberOfBytesToLockLow
        - nNumberOfBytesToLockHigh
        - lpOverlapped
      BBCount:         18
      ICount:          138
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - SetLastError
        - WLog_Print_dbg_tag
        - __errno_location
        - fileno
        - flock
        - map_posix_err
        - winpr_strerror
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/file.c:456,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:458,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.735
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/file.c:463,7'
              BranchSideFuncs:
                - fileno
                - flock
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
                - WLog_Print_dbg_tag.735
        - Branch String:   'winpr/libwinpr/file/file.c:463,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:464,3'
              BranchSideFuncs:
                - fileno
                - flock
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
                - WLog_Print_dbg_tag.735
            - BranchSide:      'winpr/libwinpr/file/file.c:466,6'
              BranchSideFuncs:
                - fileno
                - flock
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
                - WLog_Print_dbg_tag.735
        - Branch String:   'winpr/libwinpr/file/file.c:466,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:468,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.735
            - BranchSide:      'winpr/libwinpr/file/file.c:496,6'
              BranchSideFuncs:
                - fileno
                - flock
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
        - Branch String:   'winpr/libwinpr/file/file.c:496,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:497,8'
              BranchSideFuncs:
                - fileno
                - flock
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/file.c:499,8'
              BranchSideFuncs:
                - fileno
                - flock
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
        - Branch String:   'winpr/libwinpr/file/file.c:501,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:502,8'
              BranchSideFuncs:
                - fileno
                - flock
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/file.c:504,19'
              BranchSideFuncs:
                - fileno
                - flock
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
        - Branch String:   'winpr/libwinpr/file/file.c:504,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:506,8'
              BranchSideFuncs:
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/file.c:514,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:458,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/file/file.c:459,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/file.c:468,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/file/file.c:504,12'
          Dst:             fileno
        - Src:             'winpr/libwinpr/file/file.c:504,6'
          Dst:             flock
        - Src:             'winpr/libwinpr/file/file.c:507,3'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:507,3'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/file/file.c:507,3'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:507,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/file/file.c:509,30'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:509,16'
          Dst:             map_posix_err
        - Src:             'winpr/libwinpr/file/file.c:509,3'
          Dst:             SetLastError
    - functionName:    FileSetFilePointerEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 186
      functionLinenumberEnd: 221
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - hFile
        - liDistanceToMove
        - lpNewFilePointer
        - dwMoveMethod
      BBCount:         16
      ICount:          115
      EdgeCount:       18
      CyclomaticComplexity: 4
      functionsReached:
        - SetLastError
        - WLog_Print_dbg_tag
        - __errno_location
        - _fseeki64
        - _ftelli64
        - map_posix_err
        - winpr_strerror
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/file.c:190,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:191,3'
              BranchSideFuncs:
                - _fseeki64.731
                - _ftelli64.732
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/file.c:193,10'
              BranchSideFuncs:
                - _fseeki64.731
                - _ftelli64.732
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
        - Branch String:   'winpr/libwinpr/file/file.c:193,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:196,11'
              BranchSideFuncs:
                - _fseeki64.731
                - _ftelli64.732
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/file.c:199,11'
              BranchSideFuncs:
                - _fseeki64.731
                - _ftelli64.732
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/file.c:202,11'
              BranchSideFuncs:
                - _fseeki64.731
                - _ftelli64.732
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/file.c:205,4'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:208,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:210,8'
              BranchSideFuncs:
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/file.c:217,6'
              BranchSideFuncs:
                - _ftelli64.732
        - Branch String:   'winpr/libwinpr/file/file.c:217,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:218,42'
              BranchSideFuncs:
                - _ftelli64.732
            - BranchSide:      'winpr/libwinpr/file/file.c:220,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:208,6'
          Dst:             _fseeki64
        - Src:             'winpr/libwinpr/file/file.c:211,3'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:211,3'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/file/file.c:211,3'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:211,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/file/file.c:213,30'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:213,16'
          Dst:             map_posix_err
        - Src:             'winpr/libwinpr/file/file.c:213,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/file.c:218,32'
          Dst:             _ftelli64
    - functionName:    FileSetFilePointer
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 140
      functionLinenumberEnd: 182
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - hFile
        - lDistanceToMove
        - lpDistanceToMoveHigh
        - dwMoveMethod
      BBCount:         16
      ICount:          130
      EdgeCount:       18
      CyclomaticComplexity: 4
      functionsReached:
        - SetLastError
        - WLog_Print_dbg_tag
        - __errno_location
        - _fseeki64
        - _ftelli64
        - map_posix_err
        - winpr_strerror
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/file.c:145,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:146,3'
              BranchSideFuncs:
                - _fseeki64.731
                - _ftelli64.732
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/file.c:150,6'
              BranchSideFuncs:
                - _fseeki64.731
                - _ftelli64.732
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
        - Branch String:   'winpr/libwinpr/file/file.c:150,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:152,30'
              BranchSideFuncs:
                - _fseeki64.731
                - _ftelli64.732
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/file.c:155,12'
              BranchSideFuncs:
                - _fseeki64.731
                - _ftelli64.732
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
        - Branch String:   'winpr/libwinpr/file/file.c:157,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:160,11'
              BranchSideFuncs:
                - _fseeki64.731
                - _ftelli64.732
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/file.c:163,11'
              BranchSideFuncs:
                - _fseeki64.731
                - _ftelli64.732
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/file.c:166,11'
              BranchSideFuncs:
                - _fseeki64.731
                - _ftelli64.732
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/file.c:169,4'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:172,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:174,8'
              BranchSideFuncs:
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/file.c:181,26'
              BranchSideFuncs:
                - _ftelli64.732
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:172,6'
          Dst:             _fseeki64
        - Src:             'winpr/libwinpr/file/file.c:175,3'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:175,3'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/file/file.c:175,3'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:175,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/file/file.c:177,30'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:177,16'
          Dst:             map_posix_err
        - Src:             'winpr/libwinpr/file/file.c:177,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/file.c:181,16'
          Dst:             _ftelli64
    - functionName:    FileSetEndOfFile
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 114
      functionLinenumberEnd: 134
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - hFile
      BBCount:         10
      ICount:          80
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - SetLastError
        - WLog_Print_dbg_tag
        - __errno_location
        - _ftelli64
        - fileno
        - ftruncate64
        - map_posix_err
        - winpr_strerror
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/file.c:117,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:118,3'
              BranchSideFuncs:
                - _ftelli64.732
                - fileno
                - ftruncate64
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/file.c:120,31'
              BranchSideFuncs:
                - _ftelli64.732
                - fileno
                - ftruncate64
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
        - Branch String:   'winpr/libwinpr/file/file.c:121,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:122,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:124,23'
              BranchSideFuncs:
                - fileno
                - ftruncate64
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
        - Branch String:   'winpr/libwinpr/file/file.c:124,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:126,8'
              BranchSideFuncs:
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/file.c:133,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:120,21'
          Dst:             _ftelli64
        - Src:             'winpr/libwinpr/file/file.c:124,16'
          Dst:             fileno
        - Src:             'winpr/libwinpr/file/file.c:124,6'
          Dst:             ftruncate64
        - Src:             'winpr/libwinpr/file/file.c:127,3'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:127,3'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/file/file.c:127,3'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:127,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/file/file.c:129,30'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:129,16'
          Dst:             map_posix_err
        - Src:             'winpr/libwinpr/file/file.c:129,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:    FileFlushFileBuffers
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 352
      functionLinenumberEnd: 375
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - hFile
      BBCount:         10
      ICount:          65
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - SetLastError
        - __errno_location
        - fflush
        - map_posix_err
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/file.c:355,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:357,3'
              BranchSideFuncs:
                - fflush
                - __errno_location
                - map_posix_err
                - SetLastError
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/file.c:362,7'
              BranchSideFuncs:
                - fflush
                - __errno_location
                - map_posix_err
                - SetLastError
                - SetLastError
        - Branch String:   'winpr/libwinpr/file/file.c:362,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:364,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/file.c:368,13'
              BranchSideFuncs:
                - fflush
                - __errno_location
                - map_posix_err
                - SetLastError
        - Branch String:   'winpr/libwinpr/file/file.c:368,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:370,30'
              BranchSideFuncs:
                - __errno_location
                - map_posix_err
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/file.c:374,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:357,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/file.c:364,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/file.c:368,6'
          Dst:             fflush
        - Src:             'winpr/libwinpr/file/file.c:370,30'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:370,16'
          Dst:             map_posix_err
        - Src:             'winpr/libwinpr/file/file.c:370,3'
          Dst:             SetLastError
    - 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:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    FileGetFileSize
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 295
      functionLinenumberEnd: 349
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - Object
        - lpFileSizeHigh
      BBCount:         17
      ICount:          180
      EdgeCount:       23
      CyclomaticComplexity: 8
      functionsReached:
        - SetLastError
        - WLog_Print_dbg_tag
        - __errno_location
        - _fseeki64
        - _ftelli64
        - map_posix_err
        - winpr_strerror
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/file.c:300,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:301,3'
              BranchSideFuncs:
                - _ftelli64.732
                - _fseeki64.731
                - _ftelli64.732
                - _fseeki64.731
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/file.c:303,22'
              BranchSideFuncs:
                - _ftelli64.732
                - _fseeki64.731
                - _ftelli64.732
                - _fseeki64.731
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
        - Branch String:   'winpr/libwinpr/file/file.c:307,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:309,8'
              BranchSideFuncs:
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/file.c:316,16'
              BranchSideFuncs:
                - _fseeki64.731
                - _ftelli64.732
                - _fseeki64.731
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
        - Branch String:   'winpr/libwinpr/file/file.c:316,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:318,8'
              BranchSideFuncs:
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/file.c:325,19'
              BranchSideFuncs:
                - _ftelli64.732
                - _fseeki64.731
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
        - Branch String:   'winpr/libwinpr/file/file.c:327,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:329,8'
              BranchSideFuncs:
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/file.c:336,16'
              BranchSideFuncs:
                - _fseeki64.731
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
        - Branch String:   'winpr/libwinpr/file/file.c:336,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:338,8'
              BranchSideFuncs:
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/file.c:345,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:345,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:346,30'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:348,18'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:305,8'
          Dst:             _ftelli64
        - Src:             'winpr/libwinpr/file/file.c:310,3'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:310,3'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/file/file.c:310,3'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:310,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/file/file.c:312,30'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:312,16'
          Dst:             map_posix_err
        - Src:             'winpr/libwinpr/file/file.c:312,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/file.c:316,6'
          Dst:             _fseeki64
        - Src:             'winpr/libwinpr/file/file.c:319,3'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:319,3'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/file/file.c:319,3'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:319,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/file/file.c:321,30'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:321,16'
          Dst:             map_posix_err
        - Src:             'winpr/libwinpr/file/file.c:321,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/file.c:325,9'
          Dst:             _ftelli64
        - Src:             'winpr/libwinpr/file/file.c:330,3'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:330,3'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/file/file.c:330,3'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:330,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/file/file.c:332,30'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:332,16'
          Dst:             map_posix_err
        - Src:             'winpr/libwinpr/file/file.c:332,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/file.c:336,6'
          Dst:             _fseeki64
        - Src:             'winpr/libwinpr/file/file.c:339,3'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:339,3'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/file/file.c:339,3'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:339,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/file/file.c:341,30'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:341,16'
          Dst:             map_posix_err
        - Src:             'winpr/libwinpr/file/file.c:341,3'
          Dst:             SetLastError
    - functionName:    FileWrite
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 266
      functionLinenumberEnd: 292
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - Object
        - lpBuffer
        - nNumberOfBytesToWrite
        - lpNumberOfBytesWritten
        - lpOverlapped
      BBCount:         13
      ICount:          100
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - SetLastError
        - WLog_Print_dbg_tag
        - __errno_location
        - clearerr
        - ferror
        - fwrite
        - map_posix_err
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/file.c:270,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:272,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.735
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/file.c:277,7'
              BranchSideFuncs:
                - clearerr
                - fwrite
                - ferror
                - __errno_location
                - map_posix_err
                - SetLastError
        - Branch String:   'winpr/libwinpr/file/file.c:277,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:278,3'
              BranchSideFuncs:
                - clearerr
                - fwrite
                - ferror
                - __errno_location
                - map_posix_err
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/file.c:280,22'
              BranchSideFuncs:
                - clearerr
                - fwrite
                - ferror
                - __errno_location
                - map_posix_err
                - SetLastError
        - Branch String:   'winpr/libwinpr/file/file.c:284,21'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:284,31'
              BranchSideFuncs:
                - ferror
                - __errno_location
                - map_posix_err
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/file.c:290,35'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:284,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:286,30'
              BranchSideFuncs:
                - __errno_location
                - map_posix_err
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/file.c:290,35'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:272,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/file/file.c:273,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/file.c:282,2'
          Dst:             clearerr
        - Src:             'winpr/libwinpr/file/file.c:283,14'
          Dst:             fwrite
        - Src:             'winpr/libwinpr/file/file.c:284,24'
          Dst:             ferror
        - Src:             'winpr/libwinpr/file/file.c:286,30'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:286,16'
          Dst:             map_posix_err
        - Src:             'winpr/libwinpr/file/file.c:286,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: 225
      functionLinenumberEnd: 262
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - Object
        - lpBuffer
        - nNumberOfBytesToRead
        - lpNumberOfBytesRead
        - lpOverlapped
      BBCount:         19
      ICount:          126
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - SetLastError
        - WLog_Print_dbg_tag
        - __errno_location
        - clearerr
        - ferror
        - fread
        - map_posix_err
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/file.c:230,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:232,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.735
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/file.c:237,7'
              BranchSideFuncs:
                - clearerr
                - fread
                - ferror
                - __errno_location
                - SetLastError
                - __errno_location
                - map_posix_err
                - SetLastError
        - Branch String:   'winpr/libwinpr/file/file.c:237,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:238,3'
              BranchSideFuncs:
                - clearerr
                - fread
                - ferror
                - __errno_location
                - SetLastError
                - __errno_location
                - map_posix_err
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/file.c:240,22'
              BranchSideFuncs:
                - clearerr
                - fread
                - ferror
                - __errno_location
                - SetLastError
                - __errno_location
                - map_posix_err
                - SetLastError
        - Branch String:   'winpr/libwinpr/file/file.c:244,21'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:244,31'
              BranchSideFuncs:
                - ferror
                - __errno_location
                - SetLastError
                - __errno_location
                - map_posix_err
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/file.c:258,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:244,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:246,10'
              BranchSideFuncs:
                - __errno_location
                - SetLastError
                - __errno_location
                - map_posix_err
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/file.c:258,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:248,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:251,5'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/file.c:254,32'
              BranchSideFuncs:
                - __errno_location
                - map_posix_err
                - SetLastError
        - Branch String:   'winpr/libwinpr/file/file.c:258,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:259,33'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:261,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:232,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/file/file.c:233,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/file.c:241,2'
          Dst:             clearerr
        - Src:             'winpr/libwinpr/file/file.c:242,14'
          Dst:             fread
        - Src:             'winpr/libwinpr/file/file.c:244,24'
          Dst:             ferror
        - Src:             'winpr/libwinpr/file/file.c:248,11'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:251,5'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/file.c:254,32'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:254,18'
          Dst:             map_posix_err
        - Src:             'winpr/libwinpr/file/file.c:254,5'
          Dst:             SetLastError
    - functionName:    FileGetFd
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 69
      functionLinenumberEnd: 76
      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:72,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:73,3'
              BranchSideFuncs:
                - fileno
            - BranchSide:      'winpr/libwinpr/file/file.c:75,16'
              BranchSideFuncs:
                - fileno
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:72,7'
          Dst:             FileIsHandled
        - Src:             'winpr/libwinpr/file/file.c:75,9'
          Dst:             fileno
    - functionName:    FileCloseHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 109
      functionLinenumberEnd: 110
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - handle
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - FileCloseHandleInt
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:110,9'
          Dst:             FileCloseHandleInt
    - 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: 804
      functionLinenumberEnd: 828
      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:807,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:810,5'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:813,5'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:816,5'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:819,5'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:822,5'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:825,5'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    FileCreateFileA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 896
      functionLinenumberEnd: 1056
      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:         55
      ICount:          420
      EdgeCount:       73
      CyclomaticComplexity: 20
      functionsReached:
        - FileCloseHandle
        - FileGetMode
        - SetLastError
        - WINPR_HANDLE_SET_TYPE_AND_MODE
        - WLog_Print_dbg_tag
        - __errno_location
        - _strdup
        - calloc
        - fchmod
        - fileno
        - flock
        - freopen64
        - fstat64
        - map_posix_err
        - setvbuf
        - stat64
        - winpr_fopen
        - winpr_strerror
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/file.c:908,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:910,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.735
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/file.c:915,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
                - __errno_location
                - map_posix_err
                - SetLastError
                - FileCloseHandle
                - fileno
                - flock
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
                - FileCloseHandle
                - 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:916,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:918,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
                - __errno_location
                - map_posix_err
                - SetLastError
                - FileCloseHandle
                - fileno
                - flock
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
                - FileCloseHandle
                - 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:922,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
                - __errno_location
                - map_posix_err
                - SetLastError
                - FileCloseHandle
                - fileno
                - flock
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
                - FileCloseHandle
                - 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:926,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:928,3'
              BranchSideFuncs:
                - stat64
                - __errno_location
                - map_posix_err
                - SetLastError
                - free
                - free
                - setvbuf
                - fileno
                - fstat64
                - SetLastError
                - fileno
                - fchmod
                - __errno_location
                - map_posix_err
                - SetLastError
                - FileCloseHandle
                - fileno
                - flock
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
                - FileCloseHandle
                - 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:933,22'
              BranchSideFuncs:
                - stat64
                - __errno_location
                - map_posix_err
                - SetLastError
                - free
                - free
                - setvbuf
                - fileno
                - fstat64
                - SetLastError
                - fileno
                - fchmod
                - __errno_location
                - map_posix_err
                - SetLastError
                - FileCloseHandle
                - fileno
                - flock
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
                - FileCloseHandle
                - 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:940,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:942,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
                - __errno_location
                - map_posix_err
                - SetLastError
                - FileCloseHandle
                - fileno
                - flock
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
                - FileCloseHandle
                - winpr_fopen
                - stat64
                - SetLastError
                - free
                - free
            - BranchSide:      'winpr/libwinpr/file/file.c:966,12'
              BranchSideFuncs:
                - stat64
                - __errno_location
                - map_posix_err
                - SetLastError
                - free
                - free
                - setvbuf
                - fileno
                - fstat64
                - SetLastError
                - fileno
                - fchmod
                - __errno_location
                - map_posix_err
                - SetLastError
                - FileCloseHandle
                - fileno
                - flock
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
                - FileCloseHandle
                - winpr_fopen
                - SetLastError
                - free
                - free
                - __errno_location
                - map_posix_err
                - SetLastError
                - free
                - free
        - Branch String:   'winpr/libwinpr/file/file.c:942,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:944,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
                - __errno_location
                - map_posix_err
                - SetLastError
                - FileCloseHandle
                - fileno
                - flock
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
                - FileCloseHandle
                - winpr_fopen
                - SetLastError
                - free
                - free
            - BranchSide:      'winpr/libwinpr/file/file.c:953,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
                - __errno_location
                - map_posix_err
                - SetLastError
                - FileCloseHandle
                - fileno
                - flock
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
                - FileCloseHandle
                - winpr_fopen
        - Branch String:   'winpr/libwinpr/file/file.c:944,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:946,5'
              BranchSideFuncs:
                - SetLastError
                - free
                - free
            - BranchSide:      'winpr/libwinpr/file/file.c:951,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
                - __errno_location
                - map_posix_err
                - SetLastError
                - FileCloseHandle
                - fileno
                - flock
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
                - FileCloseHandle
                - winpr_fopen
        - Branch String:   'winpr/libwinpr/file/file.c:954,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:956,31'
              BranchSideFuncs:
                - freopen64
                - __errno_location
                - map_posix_err
                - SetLastError
                - free
                - free
                - setvbuf
                - fileno
                - fstat64
                - SetLastError
                - fileno
                - fchmod
                - __errno_location
                - map_posix_err
                - SetLastError
                - FileCloseHandle
                - fileno
                - flock
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
                - FileCloseHandle
                - winpr_fopen
            - BranchSide:      'winpr/libwinpr/file/file.c:962,16'
              BranchSideFuncs:
                - freopen64
                - __errno_location
                - map_posix_err
                - SetLastError
                - free
                - free
                - setvbuf
                - fileno
                - fstat64
                - SetLastError
                - fileno
                - fchmod
                - __errno_location
                - map_posix_err
                - SetLastError
                - FileCloseHandle
                - fileno
                - flock
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
                - FileCloseHandle
                - winpr_fopen
        - Branch String:   'winpr/libwinpr/file/file.c:966,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:968,31'
              BranchSideFuncs:
                - __errno_location
                - map_posix_err
                - SetLastError
                - free
                - free
            - BranchSide:      'winpr/libwinpr/file/file.c:977,7'
              BranchSideFuncs:
                - __errno_location
                - map_posix_err
                - SetLastError
                - free
                - free
                - setvbuf
                - fileno
                - fstat64
                - SetLastError
                - fileno
                - fchmod
                - __errno_location
                - map_posix_err
                - SetLastError
                - FileCloseHandle
                - fileno
                - flock
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
                - FileCloseHandle
                - winpr_fopen
                - SetLastError
                - free
                - free
        - Branch String:   'winpr/libwinpr/file/file.c:977,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:0,0'
              BranchSideFuncs:
                - SetLastError
                - free
                - free
            - BranchSide:      'winpr/libwinpr/file/file.c:979,4'
              BranchSideFuncs:
                - SetLastError
                - free
                - free
        - Branch String:   'winpr/libwinpr/file/file.c:986,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:987,20'
              BranchSideFuncs:
                - winpr_fopen
                - __errno_location
                - map_posix_err
                - SetLastError
                - free
                - free
                - setvbuf
                - fileno
                - fstat64
                - SetLastError
                - fileno
                - fchmod
                - __errno_location
                - map_posix_err
                - SetLastError
                - FileCloseHandle
                - fileno
                - flock
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
                - FileCloseHandle
            - BranchSide:      'winpr/libwinpr/file/file.c:989,14'
              BranchSideFuncs:
                - __errno_location
                - map_posix_err
                - SetLastError
                - free
                - free
                - setvbuf
                - fileno
                - fstat64
                - SetLastError
                - fileno
                - fchmod
                - __errno_location
                - map_posix_err
                - SetLastError
                - FileCloseHandle
                - fileno
                - flock
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
                - FileCloseHandle
        - Branch String:   'winpr/libwinpr/file/file.c:990,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:994,30'
              BranchSideFuncs:
                - setvbuf
                - fileno
                - fstat64
                - SetLastError
                - fileno
                - fchmod
                - __errno_location
                - map_posix_err
                - SetLastError
                - FileCloseHandle
                - fileno
                - flock
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
                - FileCloseHandle
            - BranchSide:      'winpr/libwinpr/file/file.c:1000,16'
              BranchSideFuncs:
                - setvbuf
                - fileno
                - fstat64
                - SetLastError
                - fileno
                - fchmod
                - __errno_location
                - map_posix_err
                - SetLastError
                - FileCloseHandle
                - fileno
                - flock
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
                - FileCloseHandle
        - Branch String:   'winpr/libwinpr/file/file.c:1012,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1013,8'
              BranchSideFuncs:
                - fileno
                - fstat64
                - SetLastError
                - fileno
                - fchmod
                - __errno_location
                - map_posix_err
                - SetLastError
                - FileCloseHandle
                - fileno
                - flock
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
                - FileCloseHandle
            - BranchSide:      'winpr/libwinpr/file/file.c:1014,6'
              BranchSideFuncs:
                - fileno
                - fstat64
                - SetLastError
                - fileno
                - fchmod
                - __errno_location
                - map_posix_err
                - SetLastError
                - FileCloseHandle
                - fileno
                - flock
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
                - FileCloseHandle
        - Branch String:   'winpr/libwinpr/file/file.c:1014,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1015,8'
              BranchSideFuncs:
                - fileno
                - fstat64
                - SetLastError
                - fileno
                - fchmod
                - __errno_location
                - map_posix_err
                - SetLastError
                - FileCloseHandle
                - fileno
                - flock
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
                - FileCloseHandle
            - BranchSide:      'winpr/libwinpr/file/file.c:1018,6'
              BranchSideFuncs:
                - fileno
                - fstat64
                - SetLastError
                - fileno
                - fchmod
                - __errno_location
                - map_posix_err
                - SetLastError
                - FileCloseHandle
                - fileno
                - flock
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
                - FileCloseHandle
        - Branch String:   'winpr/libwinpr/file/file.c:1018,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1023,20'
              BranchSideFuncs:
                - fileno
                - flock
                - fileno
                - fstat64
                - SetLastError
                - fileno
                - fchmod
                - __errno_location
                - map_posix_err
                - SetLastError
                - FileCloseHandle
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
                - FileCloseHandle
            - BranchSide:      'winpr/libwinpr/file/file.c:1043,19'
              BranchSideFuncs:
                - fileno
                - fstat64
                - SetLastError
                - fileno
                - fchmod
                - __errno_location
                - map_posix_err
                - SetLastError
                - FileCloseHandle
        - Branch String:   'winpr/libwinpr/file/file.c:1023,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1026,9'
              BranchSideFuncs:
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_Print_dbg_tag.735
                - __errno_location
                - map_posix_err
                - SetLastError
                - FileCloseHandle
            - BranchSide:      'winpr/libwinpr/file/file.c:1040,3'
              BranchSideFuncs:
                - fileno
                - fstat64
                - SetLastError
                - fileno
                - fchmod
                - __errno_location
                - map_posix_err
                - SetLastError
                - FileCloseHandle
        - Branch String:   'winpr/libwinpr/file/file.c:1043,41'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1043,44'
              BranchSideFuncs:
                - SetLastError
                - fileno
                - fchmod
                - __errno_location
                - map_posix_err
                - SetLastError
                - FileCloseHandle
            - BranchSide:      'winpr/libwinpr/file/file.c:1054,2'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/file/file.c:1043,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1045,17'
              BranchSideFuncs:
                - fileno
                - fchmod
                - SetLastError
                - __errno_location
                - map_posix_err
                - SetLastError
                - FileCloseHandle
            - BranchSide:      'winpr/libwinpr/file/file.c:1054,2'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/file/file.c:1046,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1048,31'
              BranchSideFuncs:
                - __errno_location
                - map_posix_err
                - SetLastError
                - FileCloseHandle
            - BranchSide:      'winpr/libwinpr/file/file.c:1052,2'
              BranchSideFuncs:
                - SetLastError
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:899,21'
          Dst:             FileGetMode
        - Src:             'winpr/libwinpr/file/file.c:910,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/file/file.c:911,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/file.c:915,23'
          Dst:             calloc
        - Src:             'winpr/libwinpr/file/file.c:918,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/file.c:922,2'
          Dst:             WINPR_HANDLE_SET_TYPE_AND_MODE
        - Src:             'winpr/libwinpr/file/file.c:925,22'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/file/file.c:928,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/file.c:944,8'
          Dst:             stat64
        - Src:             'winpr/libwinpr/file/file.c:946,5'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/file.c:953,8'
          Dst:             winpr_fopen
        - Src:             'winpr/libwinpr/file/file.c:956,31'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:956,17'
          Dst:             map_posix_err
        - Src:             'winpr/libwinpr/file/file.c:956,4'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/file.c:962,8'
          Dst:             freopen64
        - Src:             'winpr/libwinpr/file/file.c:966,7'
          Dst:             stat64
        - Src:             'winpr/libwinpr/file/file.c:968,31'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:968,17'
          Dst:             map_posix_err
        - Src:             'winpr/libwinpr/file/file.c:968,4'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/file.c:979,4'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/file.c:987,8'
          Dst:             winpr_fopen
        - Src:             'winpr/libwinpr/file/file.c:994,30'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:994,16'
          Dst:             map_posix_err
        - Src:             'winpr/libwinpr/file/file.c:994,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/file.c:1000,8'
          Dst:             setvbuf
        - Src:             'winpr/libwinpr/file/file.c:1023,13'
          Dst:             fileno
        - Src:             'winpr/libwinpr/file/file.c:1023,7'
          Dst:             flock
        - Src:             'winpr/libwinpr/file/file.c:1031,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:1031,4'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/file/file.c:1031,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:1031,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/file/file.c:1035,31'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:1035,17'
          Dst:             map_posix_err
        - Src:             'winpr/libwinpr/file/file.c:1035,4'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/file.c:1036,4'
          Dst:             FileCloseHandle
        - Src:             'winpr/libwinpr/file/file.c:1043,12'
          Dst:             fileno
        - Src:             'winpr/libwinpr/file/file.c:1043,6'
          Dst:             fstat64
        - Src:             'winpr/libwinpr/file/file.c:1046,14'
          Dst:             fileno
        - Src:             'winpr/libwinpr/file/file.c:1046,7'
          Dst:             fchmod
        - Src:             'winpr/libwinpr/file/file.c:1048,31'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:1048,17'
          Dst:             map_posix_err
        - Src:             'winpr/libwinpr/file/file.c:1048,4'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/file.c:1049,4'
          Dst:             FileCloseHandle
        - Src:             'winpr/libwinpr/file/file.c:1054,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: 1561
      functionLinenumberEnd: 1563
      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:1563,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: 1059
      functionLinenumberEnd: 1060
      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:    GetLogicalDriveStringsA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1608
      functionLinenumberEnd: 1620
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - nBufferLength
        - lpBuffer
      BBCount:         12
      ICount:          47
      EdgeCount:       12
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/file.c:1615,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1616,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1618,9'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    GetLogicalDriveStringsW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1591
      functionLinenumberEnd: 1605
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - nBufferLength
        - lpBuffer
      BBCount:         12
      ICount:          75
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - ConvertMszUtf8NToWChar
        - GetLogicalDriveStringsA
        - calloc
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/file.c:1593,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1595,19'
              BranchSideFuncs:
                - calloc
                - GetLogicalDriveStringsA
                - free
                - ConvertMszUtf8NToWChar
            - BranchSide:      'winpr/libwinpr/file/file.c:1600,43'
              BranchSideFuncs:
                - GetLogicalDriveStringsA
                - free
                - ConvertMszUtf8NToWChar
        - Branch String:   'winpr/libwinpr/file/file.c:1596,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1597,4'
              BranchSideFuncs:
                - GetLogicalDriveStringsA
                - free
                - ConvertMszUtf8NToWChar
            - BranchSide:      'winpr/libwinpr/file/file.c:1598,2'
              BranchSideFuncs:
                - GetLogicalDriveStringsA
                - free
                - ConvertMszUtf8NToWChar
        - Branch String:   'winpr/libwinpr/file/file.c:1601,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1602,26'
              BranchSideFuncs:
                - ConvertMszUtf8NToWChar
                - free
            - BranchSide:      'winpr/libwinpr/file/file.c:1603,7'
              BranchSideFuncs:
                - free
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:1595,12'
          Dst:             calloc
        - Src:             'winpr/libwinpr/file/file.c:1600,19'
          Dst:             GetLogicalDriveStringsA
        - Src:             'winpr/libwinpr/file/file.c:1602,3'
          Dst:             ConvertMszUtf8NToWChar
    - functionName:    GetFileHandleForFileDescriptor
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1525
      functionLinenumberEnd: 1558
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - fd
      BBCount:         18
      ICount:          106
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - FileHandle_New
        - __errno_location
        - fcntl64
        - fdopen
        - setvbuf
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/file.c:1534,31'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1534,34'
              BranchSideFuncs:
                - __errno_location
                - fcntl64
                - fdopen
                - setvbuf
                - FileHandle_New
                - fdopen
            - BranchSide:      'winpr/libwinpr/file/file.c:1537,16'
              BranchSideFuncs:
                - fcntl64
                - fdopen
                - setvbuf
                - FileHandle_New
                - fdopen
        - Branch String:   'winpr/libwinpr/file/file.c:1534,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1535,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1537,16'
              BranchSideFuncs:
                - fcntl64
                - fdopen
                - setvbuf
                - FileHandle_New
                - fdopen
        - Branch String:   'winpr/libwinpr/file/file.c:1538,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1539,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1541,6'
              BranchSideFuncs:
                - fdopen
                - setvbuf
                - FileHandle_New
                - fdopen
        - Branch String:   'winpr/libwinpr/file/file.c:1541,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1542,15'
              BranchSideFuncs:
                - fdopen
                - setvbuf
                - FileHandle_New
            - BranchSide:      'winpr/libwinpr/file/file.c:1544,15'
              BranchSideFuncs:
                - fdopen
                - setvbuf
                - FileHandle_New
        - Branch String:   'winpr/libwinpr/file/file.c:1546,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1547,3'
              BranchSideFuncs:
                - setvbuf
                - FileHandle_New
            - BranchSide:      'winpr/libwinpr/file/file.c:1549,16'
              BranchSideFuncs:
                - setvbuf
                - FileHandle_New
        - Branch String:   'winpr/libwinpr/file/file.c:1553,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1554,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1556,17'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:1534,6'
          Dst:             fcntl64
        - Src:             'winpr/libwinpr/file/file.c:1534,34'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:1537,10'
          Dst:             fcntl64
        - Src:             'winpr/libwinpr/file/file.c:1542,8'
          Dst:             fdopen
        - Src:             'winpr/libwinpr/file/file.c:1544,8'
          Dst:             fdopen
        - Src:             'winpr/libwinpr/file/file.c:1549,8'
          Dst:             setvbuf
        - Src:             'winpr/libwinpr/file/file.c:1552,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: 1071
      functionLinenumberEnd: 1088
      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
        - snprintf
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/file.c:1077,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1079,3'
              BranchSideFuncs:
                - _strdup
                - WINPR_HANDLE_SET_TYPE_AND_MODE
            - BranchSide:      'winpr/libwinpr/file/file.c:1082,14'
              BranchSideFuncs:
                - _strdup
                - WINPR_HANDLE_SET_TYPE_AND_MODE
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:1075,51'
          Dst:             fileno
        - Src:             'winpr/libwinpr/file/file.c:1075,8'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/file/file.c:1076,23'
          Dst:             calloc
        - Src:             'winpr/libwinpr/file/file.c:1079,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/file.c:1084,22'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/file/file.c:1086,2'
          Dst:             WINPR_HANDLE_SET_TYPE_AND_MODE
    - functionName:    ValidFileNameComponent
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1180
      functionLinenumberEnd: 1251
      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:1181,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1182,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1185,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1185,30'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1185,34'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1194,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1185,56'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1185,59'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1186,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1185,83'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1186,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1194,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1186,30'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1186,34'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1194,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1186,56'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1186,59'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1187,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1186,83'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1187,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1194,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1187,30'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1187,34'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1194,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1187,56'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1187,59'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1188,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1187,83'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1188,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1194,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1185,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1190,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1194,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1194,30'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1194,34'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1203,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1194,56'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1194,59'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1195,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1194,83'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1195,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1203,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1195,30'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1195,34'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1203,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1195,56'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1195,59'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1196,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1195,83'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1196,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1203,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1196,30'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1196,34'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1203,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1196,56'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1196,59'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1197,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1196,83'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1197,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1203,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1194,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1199,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1203,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1203,30'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1203,34'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1212,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1203,56'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1203,59'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1204,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1203,83'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1204,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1212,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1204,30'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1204,34'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1212,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1204,56'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1204,59'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1205,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1204,83'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1205,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1212,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1205,30'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1205,34'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1212,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1205,56'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1205,59'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1206,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1205,83'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1206,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1212,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1203,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1208,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1212,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1212,30'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1212,34'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1221,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1212,56'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1212,59'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1213,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1212,83'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1213,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1221,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1213,30'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1213,34'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1221,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1213,56'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1213,59'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1214,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1213,83'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1214,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1221,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1214,30'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1214,34'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1221,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1214,56'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1214,59'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1215,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1214,83'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1215,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1221,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1212,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1217,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1221,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1221,30'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1221,34'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1231,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1221,56'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1221,59'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1222,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1221,83'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1222,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1231,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1222,30'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1222,34'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1231,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1222,56'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1222,59'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1223,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1222,83'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1223,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1231,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1223,30'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1223,34'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1231,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1223,56'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1223,59'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1224,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1223,83'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1224,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1231,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1224,30'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1224,42'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1231,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1224,56'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1224,59'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1231,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1224,83'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1225,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1231,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1221,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1227,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1231,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1231,30'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1231,34'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1241,19'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1231,56'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1231,59'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1232,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1231,83'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1232,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1241,19'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1232,30'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1232,34'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1241,19'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1232,56'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1232,59'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1233,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1232,83'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1233,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1241,19'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1233,30'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1233,34'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1241,19'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1233,56'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1233,59'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1234,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1233,83'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1234,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1241,19'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1234,30'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1234,42'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1241,19'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1234,56'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1234,59'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1241,19'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1234,83'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1235,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1241,19'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1231,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1237,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1241,19'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1241,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1243,9'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1250,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1243,20'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1243,25'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1246,4'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1243,36'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1243,41'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1246,4'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1243,52'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1243,57'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1246,4'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1243,68'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1243,73'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1246,4'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1243,84'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1244,9'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1246,4'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1244,21'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1244,26'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1246,4'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1244,37'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1244,42'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1246,4'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1244,53'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1244,58'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1246,4'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1243,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1246,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1248,2'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    GetDiskFreeSpaceW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1154
      functionLinenumberEnd: 1169
      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:         8
      ICount:          68
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - ConvertWCharToUtf8Alloc
        - GetDiskFreeSpaceA
        - SetLastError
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/file.c:1156,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1157,3'
              BranchSideFuncs:
                - ConvertWCharToUtf8Alloc
                - SetLastError
                - GetDiskFreeSpaceA
                - free
            - BranchSide:      'winpr/libwinpr/file/file.c:1159,47'
              BranchSideFuncs:
                - ConvertWCharToUtf8Alloc
                - SetLastError
                - GetDiskFreeSpaceA
                - free
        - Branch String:   'winpr/libwinpr/file/file.c:1160,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1162,3'
              BranchSideFuncs:
                - GetDiskFreeSpaceA
                - free
            - BranchSide:      'winpr/libwinpr/file/file.c:1165,26'
              BranchSideFuncs:
                - GetDiskFreeSpaceA
                - free
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:1159,23'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/file/file.c:1162,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/file.c:1165,8'
          Dst:             GetDiskFreeSpaceA
    - functionName:    GetDiskFreeSpaceA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1135
      functionLinenumberEnd: 1148
      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:1144,33'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1144,25'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1144,25'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1146,36'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1146,28'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1146,28'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1147,37'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1147,37'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1147,37'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:1143,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: 1129
      functionLinenumberEnd: 1130
      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: 1123
      functionLinenumberEnd: 1124
      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: 1096
      functionLinenumberEnd: 1120
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - nStdHandle
      BBCount:         14
      ICount:          74
      EdgeCount:       15
      CyclomaticComplexity: 3
      functionsReached:
        - FileHandle_New
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/file.c:1099,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1102,9'
              BranchSideFuncs:
                - FileHandle_New
            - BranchSide:      'winpr/libwinpr/file/file.c:1105,9'
              BranchSideFuncs:
                - FileHandle_New
            - BranchSide:      'winpr/libwinpr/file/file.c:1108,9'
              BranchSideFuncs:
                - FileHandle_New
            - BranchSide:      'winpr/libwinpr/file/file.c:1111,4'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1113,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1114,35'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1116,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1116,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1117,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1119,17'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:1114,20'
          Dst:             FileHandle_New
    - functionName:    GetFileHandleCreator
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1066
      functionLinenumberEnd: 1067
      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: 770
      functionLinenumberEnd: 790
      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:774,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:775,3'
              BranchSideFuncs:
                - winpr_Digest_Init
                - winpr_Digest_Free
                - winpr_Digest_Update
                - winpr_Digest_Final
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:777,25'
              BranchSideFuncs:
                - winpr_Digest_Init
                - winpr_Digest_Free
                - winpr_Digest_Update
                - winpr_Digest_Final
        - Branch String:   'winpr/libwinpr/crypto/hash.c:777,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:778,3'
              BranchSideFuncs:
                - winpr_Digest_Update
                - winpr_Digest_Free
                - winpr_Digest_Final
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:780,27'
              BranchSideFuncs:
                - winpr_Digest_Update
                - winpr_Digest_Free
                - winpr_Digest_Final
        - Branch String:   'winpr/libwinpr/crypto/hash.c:780,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:781,3'
              BranchSideFuncs:
                - winpr_Digest_Final
                - winpr_Digest_Free
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:783,26'
              BranchSideFuncs:
                - winpr_Digest_Final
                - winpr_Digest_Free
        - Branch String:   'winpr/libwinpr/crypto/hash.c:783,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:784,3'
              BranchSideFuncs:
                - winpr_Digest_Free
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:786,9'
              BranchSideFuncs:
                - winpr_Digest_Free
      Callsites:
        - Src:             'winpr/libwinpr/crypto/hash.c:772,26'
          Dst:             winpr_Digest_New
        - Src:             'winpr/libwinpr/crypto/hash.c:777,7'
          Dst:             winpr_Digest_Init
        - Src:             'winpr/libwinpr/crypto/hash.c:780,7'
          Dst:             winpr_Digest_Update
        - Src:             'winpr/libwinpr/crypto/hash.c:783,7'
          Dst:             winpr_Digest_Final
        - Src:             'winpr/libwinpr/crypto/hash.c:788,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,26'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:454,20'
              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: 568
      functionLinenumberEnd: 590
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ctx
        - md
      BBCount:         11
      ICount:          49
      EdgeCount:       21
      CyclomaticComplexity: 12
      functionsReached:
        - winpr_Digest_Init_Internal
        - winpr_int_assert
        - winpr_openssl_get_evp_md
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crypto/hash.c:569,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:569,2'
              BranchSideFuncs:
                - winpr_openssl_get_evp_md
                - winpr_Digest_Init_Internal
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:569,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/crypto/hash.c:572,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:585,4'
              BranchSideFuncs:
                - winpr_openssl_get_evp_md
                - winpr_Digest_Init_Internal
      Callsites:
        - Src:             'winpr/libwinpr/crypto/hash.c:569,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/crypto/hash.c:589,22'
          Dst:             winpr_openssl_get_evp_md
        - Src:             'winpr/libwinpr/crypto/hash.c:590,9'
          Dst:             winpr_Digest_Init_Internal
    - functionName:    winpr_Digest_Update
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crypto/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 597
      functionLinenumberEnd: 630
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ctx
        - input
        - ilen
      BBCount:         14
      ICount:          64
      EdgeCount:       14
      CyclomaticComplexity: 2
      functionsReached:
        - EVP_DigestUpdate
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crypto/hash.c:598,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:598,2'
              BranchSideFuncs:
                - EVP_DigestUpdate
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:598,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/crypto/hash.c:600,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:613,4'
              BranchSideFuncs:
                - EVP_DigestUpdate
        - Branch String:   'winpr/libwinpr/crypto/hash.c:619,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:620,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:629,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/crypto/hash.c:598,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/crypto/hash.c:619,6'
          Dst:             EVP_DigestUpdate
    - functionName:    winpr_Digest_Final
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crypto/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 633
      functionLinenumberEnd: 671
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ctx
        - output
        - olen
      BBCount:         14
      ICount:          63
      EdgeCount:       14
      CyclomaticComplexity: 2
      functionsReached:
        - EVP_DigestFinal_ex
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crypto/hash.c:634,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:634,2'
              BranchSideFuncs:
                - EVP_DigestFinal_ex
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:634,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/crypto/hash.c:636,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:654,4'
              BranchSideFuncs:
                - EVP_DigestFinal_ex
        - Branch String:   'winpr/libwinpr/crypto/hash.c:660,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:661,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:670,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/crypto/hash.c:634,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/crypto/hash.c:660,6'
          Dst:             EVP_DigestFinal_ex
    - functionName:    winpr_Digest_Free
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crypto/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 720
      functionLinenumberEnd: 743
      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:721,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:722,3'
              BranchSideFuncs:
                - free
                - EVP_MD_CTX_free
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:724,6'
              BranchSideFuncs:
                - free
                - EVP_MD_CTX_free
        - Branch String:   'winpr/libwinpr/crypto/hash.c:724,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:730,19'
              BranchSideFuncs:
                - EVP_MD_CTX_free
                - free
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:742,7'
              BranchSideFuncs:
                - free
      Callsites:
        - Src:             'winpr/libwinpr/crypto/hash.c:730,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:         17
      ICount:          74
      EdgeCount:       20
      CyclomaticComplexity: 5
      functionsReached:
        - EVP_DigestInit_ex
        - WLog_Print_dbg_tag
        - winpr_int_assert
        - 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
                - winpr_md_type_to_string
                - WLog_Print_dbg_tag.817
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:489,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/crypto/hash.c:492,13'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:492,17'
              BranchSideFuncs:
                - EVP_DigestInit_ex
                - winpr_md_type_to_string
                - WLog_Print_dbg_tag.817
            - 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
                - winpr_md_type_to_string
                - WLog_Print_dbg_tag.817
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:495,24'
              BranchSideFuncs:
                - EVP_DigestInit_ex
                - winpr_md_type_to_string
                - WLog_Print_dbg_tag.817
        - Branch String:   'winpr/libwinpr/crypto/hash.c:495,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:497,3'
              BranchSideFuncs:
                - winpr_md_type_to_string
                - WLog_Print_dbg_tag.817
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:501,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/crypto/hash.c:489,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/crypto/hash.c:495,6'
          Dst:             EVP_DigestInit_ex
        - Src:             'winpr/libwinpr/crypto/hash.c:497,3'
          Dst:             winpr_md_type_to_string
        - Src:             'winpr/libwinpr/crypto/hash.c:497,3'
          Dst:             WLog_Print_dbg_tag
    - 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:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 216
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - tag
        - log_level
        - line
        - file
        - fkt
      BBCount:         9
      ICount:          67
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintMessageVA
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/wlog.h:206,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/wlog.h:207,30'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessageVA
            - BranchSide:      'winpr/include/winpr/wlog.h:209,26'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessageVA
        - Branch String:   'winpr/include/winpr/wlog.h:209,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/wlog.h:209,7'
              BranchSideFuncs:
                - WLog_PrintMessageVA
            - BranchSide:      'winpr/include/winpr/wlog.h:212,4'
              BranchSideFuncs:
                - WLog_PrintMessageVA
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:207,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:209,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:213,4'
          Dst:             WLog_PrintMessageVA
    - 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: 747
      functionLinenumberEnd: 767
      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:751,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:752,3'
              BranchSideFuncs:
                - winpr_Digest_Init_Allow_FIPS
                - winpr_Digest_Free
                - winpr_Digest_Update
                - winpr_Digest_Final
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:754,36'
              BranchSideFuncs:
                - winpr_Digest_Init_Allow_FIPS
                - winpr_Digest_Free
                - winpr_Digest_Update
                - winpr_Digest_Final
        - Branch String:   'winpr/libwinpr/crypto/hash.c:754,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:755,3'
              BranchSideFuncs:
                - winpr_Digest_Update
                - winpr_Digest_Free
                - winpr_Digest_Final
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:757,27'
              BranchSideFuncs:
                - winpr_Digest_Update
                - winpr_Digest_Free
                - winpr_Digest_Final
        - Branch String:   'winpr/libwinpr/crypto/hash.c:757,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:758,3'
              BranchSideFuncs:
                - winpr_Digest_Final
                - winpr_Digest_Free
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:760,26'
              BranchSideFuncs:
                - winpr_Digest_Final
                - winpr_Digest_Free
        - Branch String:   'winpr/libwinpr/crypto/hash.c:760,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:761,3'
              BranchSideFuncs:
                - winpr_Digest_Free
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:763,9'
              BranchSideFuncs:
                - winpr_Digest_Free
      Callsites:
        - Src:             'winpr/libwinpr/crypto/hash.c:749,26'
          Dst:             winpr_Digest_New
        - Src:             'winpr/libwinpr/crypto/hash.c:754,7'
          Dst:             winpr_Digest_Init_Allow_FIPS
        - Src:             'winpr/libwinpr/crypto/hash.c:757,7'
          Dst:             winpr_Digest_Update
        - Src:             'winpr/libwinpr/crypto/hash.c:760,7'
          Dst:             winpr_Digest_Final
        - Src:             'winpr/libwinpr/crypto/hash.c:765,2'
          Dst:             winpr_Digest_Free
    - functionName:    winpr_Digest_Init_Allow_FIPS
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crypto/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 531
      functionLinenumberEnd: 565
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ctx
        - md
      BBCount:         12
      ICount:          64
      EdgeCount:       23
      CyclomaticComplexity: 13
      functionsReached:
        - EVP_MD_CTX_set_flags
        - WLog_Print_dbg_tag
        - winpr_Digest_Init_Internal
        - winpr_int_assert
        - 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
                - winpr_md_type_to_string
                - WLog_Print_dbg_tag.817
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:532,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/crypto/hash.c:535,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:554,49'
              BranchSideFuncs:
                - winpr_openssl_get_evp_md
                - EVP_MD_CTX_set_flags
                - winpr_Digest_Init_Internal
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:562,4'
              BranchSideFuncs:
                - winpr_md_type_to_string
                - WLog_Print_dbg_tag.817
      Callsites:
        - Src:             'winpr/libwinpr/crypto/hash.c:532,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/crypto/hash.c:554,24'
          Dst:             winpr_openssl_get_evp_md
        - Src:             'winpr/libwinpr/crypto/hash.c:555,4'
          Dst:             EVP_MD_CTX_set_flags
        - Src:             'winpr/libwinpr/crypto/hash.c:556,11'
          Dst:             winpr_Digest_Init_Internal
        - Src:             'winpr/libwinpr/crypto/hash.c:562,4'
          Dst:             winpr_md_type_to_string
        - Src:             'winpr/libwinpr/crypto/hash.c:562,4'
          Dst:             WLog_Print_dbg_tag
    - 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: 707
      functionLinenumberEnd: 713
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ctx
        - output
        - piolen
      BBCount:         9
      ICount:          48
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - EVP_DigestSignFinal
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crypto/hash.c:708,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:708,2'
              BranchSideFuncs:
                - EVP_DigestSignFinal
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:708,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/crypto/hash.c:708,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/crypto/hash.c:713,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: 692
      functionLinenumberEnd: 704
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ctx
        - input
        - ilen
      BBCount:         12
      ICount:          57
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - EVP_DigestUpdate
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crypto/hash.c:693,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:693,2'
              BranchSideFuncs:
                - EVP_DigestUpdate
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:693,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/crypto/hash.c:698,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:699,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:700,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/crypto/hash.c:693,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/crypto/hash.c:698,6'
          Dst:             EVP_DigestUpdate
    - functionName:    winpr_DigestSign_Init
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crypto/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 674
      functionLinenumberEnd: 689
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ctx
        - md
        - key
      BBCount:         14
      ICount:          70
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - EVP_DigestSignInit
        - winpr_int_assert
        - winpr_openssl_get_evp_md
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crypto/hash.c:675,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:675,2'
              BranchSideFuncs:
                - winpr_openssl_get_evp_md
                - EVP_DigestSignInit
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:675,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/crypto/hash.c:679,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:680,3'
              BranchSideFuncs:
                - EVP_DigestSignInit
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:682,38'
              BranchSideFuncs:
                - EVP_DigestSignInit
        - Branch String:   'winpr/libwinpr/crypto/hash.c:683,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:684,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:685,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/crypto/hash.c:675,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/crypto/hash.c:678,22'
          Dst:             winpr_openssl_get_evp_md
        - Src:             'winpr/libwinpr/crypto/hash.c:682,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,41'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:179,18'
              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:         21
      ICount:          103
      EdgeCount:       24
      CyclomaticComplexity: 5
      functionsReached:
        - HMAC_Init_ex
        - winpr_int_assert
        - 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:217,2'
              BranchSideFuncs:
                - winpr_int_assert
        - 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:             winpr_int_assert
        - 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:         14
      ICount:          64
      EdgeCount:       14
      CyclomaticComplexity: 2
      functionsReached:
        - HMAC_Update
        - winpr_int_assert
      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:289,2'
              BranchSideFuncs:
                - winpr_int_assert
        - 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:             winpr_int_assert
        - 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:         14
      ICount:          63
      EdgeCount:       14
      CyclomaticComplexity: 2
      functionsReached:
        - HMAC_Final
        - winpr_int_assert
      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:330,2'
              BranchSideFuncs:
                - winpr_int_assert
        - 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:             winpr_int_assert
        - 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_Fill
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1200
      functionLinenumberEnd: 1205
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - size_t
      constantsTouched: []
      argNames:
        - _s
        - _v
        - _n
      BBCount:         15
      ICount:          60
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - Stream_Seek
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:1201,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:1201,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - winpr_int_assert
                - Stream_Seek.924
            - BranchSide:      'winpr/include/winpr/stream.h:1201,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:1202,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:1202,3'
              BranchSideFuncs:
                - Stream_Seek.924
            - BranchSide:      'winpr/include/winpr/stream.h:1202,3'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1201,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1202,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:1202,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1204,3'
          Dst:             Stream_Seek
    - 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:         24
      ICount:          98
      EdgeCount:       25
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_int_assert
        - 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:
                - winpr_int_assert
                - winpr_int_assert
                - WLog_Print_dbg_tag.933
                - winpr_log_backtrace
            - BranchSide:      'winpr/libwinpr/utils/stream.c:254,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/stream.c:255,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:255,2'
              BranchSideFuncs:
                - winpr_int_assert
                - WLog_Print_dbg_tag.933
                - winpr_log_backtrace
            - BranchSide:      'winpr/libwinpr/utils/stream.c:255,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/stream.c:257,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:257,2'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.933
                - winpr_log_backtrace
            - BranchSide:      'winpr/libwinpr/utils/stream.c:257,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/stream.c:258,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:260,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.933
                - winpr_log_backtrace
            - BranchSide:      'winpr/libwinpr/utils/stream.c:264,10'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:254,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/stream.c:255,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/stream.c:257,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/stream.c:260,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/utils/stream.c:261,3'
          Dst:             winpr_log_backtrace
    - functionName:    Stream_Seek
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 124
      functionLinenumberEnd: 128
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - s
        - _offset
      BBCount:         15
      ICount:          53
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - winpr_int_assert
      functionUses:    6
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:125,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:125,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - winpr_int_assert
            - BranchSide:      'winpr/include/winpr/stream.h:125,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:126,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:126,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/stream.h:126,3'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:125,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:126,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:126,3'
          Dst:             winpr_int_assert
    - functionName:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 216
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - tag
        - log_level
        - line
        - file
        - fkt
      BBCount:         9
      ICount:          67
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintMessageVA
      functionUses:    7
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/wlog.h:206,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/wlog.h:207,30'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessageVA
            - BranchSide:      'winpr/include/winpr/wlog.h:209,26'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessageVA
        - Branch String:   'winpr/include/winpr/wlog.h:209,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/wlog.h:209,7'
              BranchSideFuncs:
                - WLog_PrintMessageVA
            - BranchSide:      'winpr/include/winpr/wlog.h:212,4'
              BranchSideFuncs:
                - WLog_PrintMessageVA
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:207,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:209,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:213,4'
          Dst:             WLog_PrintMessageVA
    - functionName:    winpr_Data_Get_UINT16
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/endian.h'
      linkageType:     InternalLinkage
      functionLinenumber: 59
      functionLinenumberEnd: 69
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - d
      BBCount:         13
      ICount:          73
      EdgeCount:       14
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/endian.h:60,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/endian.h:60,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/endian.h:60,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/endian.h:64,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/endian.h:66,6'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/endian.h:69,10'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/include/winpr/endian.h:60,3'
          Dst:             winpr_int_assert
    - functionName:    winpr_Data_Write_UINT16
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/endian.h'
      linkageType:     InternalLinkage
      functionLinenumber: 235
      functionLinenumberEnd: 240
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - d
        - v
      BBCount:         9
      ICount:          51
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/endian.h:236,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/endian.h:236,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/endian.h:236,3'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/include/winpr/endian.h:236,3'
          Dst:             winpr_int_assert
    - functionName:    Stream_SafeSeekEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 517
      functionLinenumberEnd: 524
      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:518,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:520,3'
              BranchSideFuncs:
                - Stream_Seek.924
            - BranchSide:      'winpr/libwinpr/utils/stream.c:522,14'
              BranchSideFuncs:
                - Stream_Seek.924
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:518,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'winpr/libwinpr/utils/stream.c:522,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:         12
      ICount:          80
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredLengthExVa
        - Stream_GetRemainingLength
        - winpr_int_assert
      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:395,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/stream.c:398,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:402,3'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthExVa
            - BranchSide:      'winpr/libwinpr/utils/stream.c:408,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:395,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/stream.c:396,24'
          Dst:             Stream_GetRemainingLength
        - Src:             'winpr/libwinpr/utils/stream.c:403,3'
          Dst:             Stream_CheckAndLogRequiredLengthExVa
    - 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:          116
      EdgeCount:       31
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_int_assert
        - 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:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - WLog_Print_dbg_tag.933
                - winpr_log_backtrace
            - BranchSide:      'winpr/libwinpr/utils/stream.c:270,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/stream.c:271,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:271,2'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - WLog_Print_dbg_tag.933
                - winpr_log_backtrace
            - BranchSide:      'winpr/libwinpr/utils/stream.c:271,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/stream.c:272,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:272,2'
              BranchSideFuncs:
                - winpr_int_assert
                - WLog_Print_dbg_tag.933
                - winpr_log_backtrace
            - BranchSide:      'winpr/libwinpr/utils/stream.c:272,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/stream.c:274,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:274,2'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.933
                - winpr_log_backtrace
            - BranchSide:      'winpr/libwinpr/utils/stream.c:274,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/stream.c:275,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:277,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.933
                - winpr_log_backtrace
            - BranchSide:      'winpr/libwinpr/utils/stream.c:281,10'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:270,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/stream.c:271,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/stream.c:272,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/stream.c:274,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/stream.c:277,3'
          Dst:             WLog_Print_dbg_tag
        - 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:         12
      ICount:          78
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogExVa
        - Stream_GetRemainingLength
        - WLog_Get
        - winpr_int_assert
      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:414,2'
              BranchSideFuncs:
                - winpr_int_assert
        - 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:             winpr_int_assert
        - 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:         19
      ICount:          104
      EdgeCount:       21
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_GetRemainingLength
        - WLog_IsLevelActive
        - WLog_PrintMessage
        - vsnprintf
        - winpr_int_assert
        - 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:447,2'
              BranchSideFuncs:
                - winpr_int_assert
        - 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:             winpr_int_assert
        - 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:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    Stream_Read_UTF16_String_As_UTF8_Buffer
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 504
      functionLinenumberEnd: 514
      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:506,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:507,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/stream.c:509,7'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthEx
                - Stream_Seek.924
                - ConvertWCharNToUtf8
        - Branch String:   'winpr/libwinpr/utils/stream.c:509,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:510,3'
              BranchSideFuncs:
                - Stream_Seek.924
                - ConvertWCharNToUtf8
            - BranchSide:      'winpr/libwinpr/utils/stream.c:512,14'
              BranchSideFuncs:
                - Stream_Seek.924
                - ConvertWCharNToUtf8
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:505,21'
          Dst:             Stream_ConstPointer
        - Src:             'winpr/libwinpr/utils/stream.c:509,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'winpr/libwinpr/utils/stream.c:512,2'
          Dst:             Stream_Seek
        - Src:             'winpr/libwinpr/utils/stream.c:513,9'
          Dst:             ConvertWCharNToUtf8
    - functionName:    Stream_ConstPointer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1264
      functionLinenumberEnd: 1266
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - _s
      BBCount:         9
      ICount:          32
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:1265,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:1265,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/stream.h:1265,3'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1265,3'
          Dst:             winpr_int_assert
    - functionName:    Stream_Read_UTF16_String_As_UTF8
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 490
      functionLinenumberEnd: 500
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - wcharLength
        - pUtfCharLength
      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:492,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:493,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/stream.c:495,7'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthEx
                - Stream_Seek.924
                - ConvertWCharNToUtf8Alloc
        - Branch String:   'winpr/libwinpr/utils/stream.c:495,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:496,3'
              BranchSideFuncs:
                - Stream_Seek.924
                - ConvertWCharNToUtf8Alloc
            - BranchSide:      'winpr/libwinpr/utils/stream.c:498,14'
              BranchSideFuncs:
                - Stream_Seek.924
                - ConvertWCharNToUtf8Alloc
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:491,21'
          Dst:             Stream_ConstPointer
        - Src:             'winpr/libwinpr/utils/stream.c:495,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'winpr/libwinpr/utils/stream.c:498,2'
          Dst:             Stream_Seek
        - Src:             'winpr/libwinpr/utils/stream.c:499,9'
          Dst:             ConvertWCharNToUtf8Alloc
    - functionName:    Stream_Zero
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1208
      functionLinenumberEnd: 1210
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - _s
        - _n
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_Fill
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1209,3'
          Dst:             Stream_Fill
    - functionName:    Stream_Pointer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1258
      functionLinenumberEnd: 1260
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - _s
      BBCount:         9
      ICount:          32
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:1259,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:1259,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/stream.h:1259,3'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1259,3'
          Dst:             winpr_int_assert
    - functionName:    Stream_Write_UTF16_String_From_UTF8
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 468
      functionLinenumberEnd: 487
      functionDepth:   0
      returnType:      size_t
      argCount:        5
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - s
        - wcharLength
        - src
        - length
        - fill
      BBCount:         14
      ICount:          99
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - ConvertUtf8NToWChar
        - Stream_CheckAndLogRequiredCapacityEx
        - Stream_Pointer
        - Stream_Seek
        - Stream_Zero
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/stream.c:472,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:474,8'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredCapacityEx
                - ConvertUtf8NToWChar
                - Stream_Seek.924
                - Stream_Zero.957
            - BranchSide:      'winpr/libwinpr/utils/stream.c:484,6'
              BranchSideFuncs:
                - Stream_Zero.957
        - Branch String:   'winpr/libwinpr/utils/stream.c:474,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:475,4'
              BranchSideFuncs:
                - ConvertUtf8NToWChar
                - Stream_Seek.924
                - Stream_Zero.957
            - BranchSide:      'winpr/libwinpr/utils/stream.c:477,28'
              BranchSideFuncs:
                - ConvertUtf8NToWChar
                - Stream_Seek.924
                - Stream_Zero.957
        - Branch String:   'winpr/libwinpr/utils/stream.c:478,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:479,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/stream.c:481,15'
              BranchSideFuncs:
                - Stream_Seek.924
                - Stream_Zero.957
        - Branch String:   'winpr/libwinpr/utils/stream.c:484,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:485,15'
              BranchSideFuncs:
                - Stream_Zero.957
            - BranchSide:      'winpr/libwinpr/utils/stream.c:486,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:470,15'
          Dst:             Stream_Pointer
        - Src:             'winpr/libwinpr/utils/stream.c:474,8'
          Dst:             Stream_CheckAndLogRequiredCapacityEx
        - Src:             'winpr/libwinpr/utils/stream.c:477,8'
          Dst:             ConvertUtf8NToWChar
        - Src:             'winpr/libwinpr/utils/stream.c:481,3'
          Dst:             Stream_Seek
        - Src:             'winpr/libwinpr/utils/stream.c:485,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:         12
      ICount:          80
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredCapacityExVa
        - Stream_GetRemainingCapacity
        - winpr_int_assert
      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:317,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/stream.c:320,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:324,3'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredCapacityExVa
            - BranchSide:      'winpr/libwinpr/utils/stream.c:330,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:317,2'
          Dst:             winpr_int_assert
        - 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:         12
      ICount:          78
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredCapacityWLogExVa
        - Stream_GetRemainingCapacity
        - WLog_Get
        - winpr_int_assert
      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:336,2'
              BranchSideFuncs:
                - winpr_int_assert
        - 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:             winpr_int_assert
        - 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:         19
      ICount:          104
      EdgeCount:       21
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_GetRemainingCapacity
        - WLog_IsLevelActive
        - WLog_PrintMessage
        - vsnprintf
        - winpr_int_assert
        - 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:351,2'
              BranchSideFuncs:
                - winpr_int_assert
        - 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:             winpr_int_assert
        - 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:         12
      ICount:          80
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogExVa
        - Stream_GetRemainingLength
        - winpr_int_assert
      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:426,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/stream.c:429,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:433,3'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthWLogExVa
            - BranchSide:      'winpr/libwinpr/utils/stream.c:439,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:426,2'
          Dst:             winpr_int_assert
        - 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:         12
      ICount:          80
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredCapacityWLogExVa
        - Stream_GetRemainingCapacity
        - winpr_int_assert
      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:375,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/stream.c:378,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:382,3'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredCapacityWLogExVa
            - BranchSide:      'winpr/libwinpr/utils/stream.c:388,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:375,2'
          Dst:             winpr_int_assert
        - 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: 163
      functionLinenumberEnd: 171
      functionDepth:   0
      returnType:      short
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - _s
        - seek
      BBCount:         18
      ICount:          68
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_GetRemainingLength
        - Stream_Seek
        - winpr_Data_Get_UINT16
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:165,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:165,3'
              BranchSideFuncs:
                - Stream_GetRemainingLength
                - winpr_int_assert
                - winpr_Data_Get_UINT16.935
                - Stream_Seek.924
            - BranchSide:      'winpr/include/winpr/stream.h:165,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:166,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:166,3'
              BranchSideFuncs:
                - winpr_Data_Get_UINT16.935
                - Stream_Seek.924
            - BranchSide:      'winpr/include/winpr/stream.h:166,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:169,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:169,7'
              BranchSideFuncs:
                - Stream_Seek.924
            - BranchSide:      'winpr/include/winpr/stream.h:170,16'
              BranchSideFuncs:
                - Stream_Seek.924
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:165,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:166,3'
          Dst:             Stream_GetRemainingLength
        - Src:             'winpr/include/winpr/stream.h:166,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:168,20'
          Dst:             winpr_Data_Get_UINT16
        - Src:             'winpr/include/winpr/stream.h:170,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:         24
      ICount:          87
      EdgeCount:       26
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - stream_read_u16_le
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/stream.c:302,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:302,2'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u16_le.964
            - BranchSide:      'winpr/libwinpr/utils/stream.c:302,2'
              BranchSideFuncs:
                - winpr_int_assert
        - 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.964
            - BranchSide:      'winpr/libwinpr/utils/stream.c:303,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/stream.c:305,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:306,3'
              BranchSideFuncs:
                - stream_read_u16_le.964
            - BranchSide:      'winpr/libwinpr/utils/stream.c:308,14'
              BranchSideFuncs:
                - stream_read_u16_le.964
        - Branch String:   'winpr/libwinpr/utils/stream.c:308,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:309,3'
              BranchSideFuncs:
                - stream_read_u16_le.964
            - BranchSide:      'winpr/libwinpr/utils/stream.c:311,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:302,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/stream.c:303,2'
          Dst:             winpr_int_assert
        - 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_unchecked
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 892
      functionLinenumberEnd: 899
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - _s
        - _v
      BBCount:         21
      ICount:          70
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - winpr_Data_Write_UINT16
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:893,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:893,3'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_GetRemainingCapacity
                - winpr_int_assert
                - winpr_Data_Write_UINT16.939
            - BranchSide:      'winpr/include/winpr/stream.h:893,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:894,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:894,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - winpr_int_assert
                - winpr_Data_Write_UINT16.939
            - BranchSide:      'winpr/include/winpr/stream.h:894,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:895,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:895,3'
              BranchSideFuncs:
                - winpr_Data_Write_UINT16.939
            - BranchSide:      'winpr/include/winpr/stream.h:895,3'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:893,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:894,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:895,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:895,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:897,3'
          Dst:             winpr_Data_Write_UINT16
    - 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:         44
      ICount:          149
      EdgeCount:       49
      CyclomaticComplexity: 7
      functionsReached:
        - Stream_CheckAndLogRequiredCapacityEx
        - Stream_Write_UINT16_unchecked
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/stream.c:286,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:286,2'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_CheckAndLogRequiredCapacityEx
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.968
            - BranchSide:      'winpr/libwinpr/utils/stream.c:286,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/stream.c:287,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:287,2'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredCapacityEx
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.968
            - BranchSide:      'winpr/libwinpr/utils/stream.c:287,2'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_CheckAndLogRequiredCapacityEx
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.968
        - Branch String:   'winpr/libwinpr/utils/stream.c:287,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:287,2'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredCapacityEx
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.968
            - BranchSide:      'winpr/libwinpr/utils/stream.c:287,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/stream.c:288,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:288,13'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredCapacityEx
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.968
            - 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
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.968
            - BranchSide:      'winpr/libwinpr/utils/stream.c:291,7'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredCapacityEx
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.968
        - Branch String:   'winpr/libwinpr/utils/stream.c:291,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:292,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.968
            - BranchSide:      'winpr/libwinpr/utils/stream.c:294,14'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.968
        - Branch String:   'winpr/libwinpr/utils/stream.c:294,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:295,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.968
            - BranchSide:      'winpr/libwinpr/utils/stream.c:297,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/stream.c:295,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:295,3'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.968
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/utils/stream.c:295,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/stream.c:295,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:295,3'
              BranchSideFuncs:
                - Stream_Write_UINT16_unchecked.968
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/utils/stream.c:295,3'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:286,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/stream.c:287,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/stream.c:291,7'
          Dst:             Stream_CheckAndLogRequiredCapacityEx
        - Src:             'winpr/libwinpr/utils/stream.c:295,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/stream.c:295,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/stream.c:295,3'
          Dst:             Stream_Write_UINT16_unchecked
    - 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:         24
      ICount:          96
      EdgeCount:       25
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_int_assert
        - 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:
                - winpr_int_assert
                - winpr_int_assert
                - WLog_Print_dbg_tag.933
                - winpr_log_backtrace
            - BranchSide:      'winpr/libwinpr/utils/stream.c:206,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/stream.c:207,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:207,2'
              BranchSideFuncs:
                - winpr_int_assert
                - WLog_Print_dbg_tag.933
                - winpr_log_backtrace
            - BranchSide:      'winpr/libwinpr/utils/stream.c:207,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/stream.c:209,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:209,2'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.933
                - winpr_log_backtrace
            - BranchSide:      'winpr/libwinpr/utils/stream.c:209,2'
              BranchSideFuncs:
                - winpr_int_assert
        - 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_Print_dbg_tag.933
                - winpr_log_backtrace
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:206,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/stream.c:207,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/stream.c:209,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/stream.c:214,3'
          Dst:             WLog_Print_dbg_tag
        - 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: 1296
      functionLinenumberEnd: 1298
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - _s
      BBCount:         9
      ICount:          32
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:1297,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:1297,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/stream.h:1297,3'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1297,3'
          Dst:             winpr_int_assert
    - 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:         19
      ICount:          93
      EdgeCount:       19
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
        - 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_Print_dbg_tag.933
                - winpr_log_backtrace
                - abort
                - WLog_Print_dbg_tag.933
                - winpr_log_backtrace
                - abort
                - WLog_Print_dbg_tag.933
                - winpr_log_backtrace
                - abort
            - BranchSide:      'winpr/libwinpr/utils/stream.c:161,2'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.933
                - winpr_log_backtrace
                - abort
                - WLog_Print_dbg_tag.933
                - winpr_log_backtrace
                - abort
                - WLog_Print_dbg_tag.933
                - 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_Print_dbg_tag.933
                - winpr_log_backtrace
                - abort
                - WLog_Print_dbg_tag.933
                - winpr_log_backtrace
                - abort
            - BranchSide:      'winpr/libwinpr/utils/stream.c:163,17'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.933
                - winpr_log_backtrace
                - abort
                - WLog_Print_dbg_tag.933
                - 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_Print_dbg_tag.933
                - winpr_log_backtrace
                - abort
            - BranchSide:      'winpr/libwinpr/utils/stream.c:165,2'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.933
                - 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_Print_dbg_tag.933
                - winpr_log_backtrace
                - abort
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:160,2'
          Dst:             WLog_Print_dbg_tag
        - 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_Print_dbg_tag
        - 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_Print_dbg_tag
        - 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_Print_dbg_tag
        - 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:    5
      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:         15
      ICount:          79
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/stream.c:143,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:143,2'
              BranchSideFuncs:
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/utils/stream.c:143,2'
              BranchSideFuncs:
                - winpr_int_assert
        - 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:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:143,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/stream.c:144,2'
          Dst:             winpr_int_assert
    - 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:
        - calloc
      functionUses:    3
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/stream.c:98,14'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:98,18'
              BranchSideFuncs:
                - calloc
                - malloc
                - free
            - BranchSide:      'winpr/libwinpr/utils/stream.c:101,6'
              BranchSideFuncs:
                - calloc
                - malloc
                - free
        - Branch String:   'winpr/libwinpr/utils/stream.c:98,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:99,3'
              BranchSideFuncs:
                - calloc
                - malloc
                - free
            - BranchSide:      'winpr/libwinpr/utils/stream.c:101,6'
              BranchSideFuncs:
                - calloc
                - 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:
        - Src:             'winpr/libwinpr/utils/stream.c:101,6'
          Dst:             calloc
    - 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: 1304
      functionLinenumberEnd: 1307
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - _s
      BBCount:         15
      ICount:          55
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:1305,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:1305,3'
              BranchSideFuncs:
                - winpr_int_assert
            - BranchSide:      'winpr/include/winpr/stream.h:1305,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:1306,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:1306,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/stream.h:1306,3'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1305,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1306,3'
          Dst:             winpr_int_assert
    - 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:         22
      ICount:          150
      EdgeCount:       26
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_GetPosition
        - Stream_SetPosition
        - realloc
        - winpr_int_assert
      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.985
                - malloc
                - Stream_SetPosition
                - realloc
            - BranchSide:      'winpr/libwinpr/utils/stream.c:46,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/stream.c:47,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:49,10'
              BranchSideFuncs:
                - Stream_GetPosition.985
                - 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.985
                - malloc
                - Stream_SetPosition
                - realloc
            - BranchSide:      'winpr/libwinpr/utils/stream.c:62,33'
              BranchSideFuncs:
                - Stream_GetPosition.985
                - 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:             winpr_int_assert
        - 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: 202
      functionLinenumberEnd: 210
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - dw
        - dmsg
        - size
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - __xpg_strerror_r
      functionUses:    46
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/debug.c:206,8'
          Dst:             __xpg_strerror_r
    - functionName:    __xpg_strerror_r
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    winpr_log_backtrace_ex
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/debug.c'
      linkageType:     InternalLinkage
      functionLinenumber: 177
      functionLinenumberEnd: 199
      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
        - WLog_PrintMessage
        - winpr_backtrace
        - winpr_backtrace_free
        - winpr_backtrace_symbols
      functionUses:    4
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/debug.c:182,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/debug.c:184,3'
              BranchSideFuncs:
                - winpr_backtrace_symbols
                - free
                - winpr_backtrace_free
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/debug.c:188,32'
              BranchSideFuncs:
                - winpr_backtrace_symbols
                - free
                - winpr_backtrace_free
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/utils/debug.c:184,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/debug.c:184,3'
              BranchSideFuncs:
                - WLog_PrintMessage
                - winpr_backtrace_free
            - BranchSide:      'winpr/libwinpr/utils/debug.c:185,3'
              BranchSideFuncs:
                - winpr_backtrace_free
        - Branch String:   'winpr/libwinpr/utils/debug.c:190,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/debug.c:192,15'
              BranchSideFuncs:
                - free
                - winpr_backtrace_free
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/debug.c:195,14'
              BranchSideFuncs:
                - free
                - winpr_backtrace_free
        - Branch String:   'winpr/libwinpr/utils/debug.c:192,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/debug.c:193,4'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - free
                - winpr_backtrace_free
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/debug.c:194,2'
              BranchSideFuncs:
                - free
                - winpr_backtrace_free
        - Branch String:   'winpr/libwinpr/utils/debug.c:193,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/debug.c:192,33'
              BranchSideFuncs:
                - WLog_PrintMessage
                - free
                - winpr_backtrace_free
                - WLog_IsLevelActive
            - BranchSide:      'winpr/libwinpr/utils/debug.c:193,4'
              BranchSideFuncs:
                - WLog_PrintMessage
                - free
                - winpr_backtrace_free
                - WLog_IsLevelActive
      Callsites:
        - Src:             'winpr/libwinpr/utils/debug.c:180,16'
          Dst:             winpr_backtrace
        - Src:             'winpr/libwinpr/utils/debug.c:184,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/utils/debug.c:184,3'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/utils/debug.c:188,8'
          Dst:             winpr_backtrace_symbols
        - Src:             'winpr/libwinpr/utils/debug.c:193,4'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/utils/debug.c:193,4'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/utils/debug.c:198,2'
          Dst:             winpr_backtrace_free
    - functionName:    winpr_backtrace
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/debug.c'
      linkageType:     InternalLinkage
      functionLinenumber: 85
      functionLinenumberEnd: 87
      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:87,9'
          Dst:             winpr_unwind_backtrace
    - functionName:    winpr_backtrace_symbols
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/debug.c'
      linkageType:     InternalLinkage
      functionLinenumber: 103
      functionLinenumberEnd: 142
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - buffer
        - used
      BBCount:         9
      ICount:          49
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_unwind_backtrace_symbols
      functionUses:    3
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/debug.c:104,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/debug.c:105,4'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.1016
                - winpr_unwind_backtrace_symbols
            - BranchSide:      'winpr/libwinpr/utils/debug.c:107,7'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.1016
                - winpr_unwind_backtrace_symbols
        - Branch String:   'winpr/libwinpr/utils/debug.c:107,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/debug.c:109,3'
              BranchSideFuncs:
                - winpr_unwind_backtrace_symbols
            - BranchSide:      'winpr/libwinpr/utils/debug.c:114,40'
              BranchSideFuncs:
                - winpr_unwind_backtrace_symbols
      Callsites:
        - Src:             'winpr/libwinpr/utils/debug.c:109,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/utils/debug.c:114,9'
          Dst:             winpr_unwind_backtrace_symbols
    - functionName:    winpr_backtrace_free
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/debug.c'
      linkageType:     InternalLinkage
      functionLinenumber: 66
      functionLinenumberEnd: 82
      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:67,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/debug.c:68,3'
              BranchSideFuncs:
                - winpr_unwind_backtrace_free
            - BranchSide:      'winpr/libwinpr/utils/debug.c:71,30'
              BranchSideFuncs:
                - winpr_unwind_backtrace_free
      Callsites:
        - Src:             'winpr/libwinpr/utils/debug.c:71,2'
          Dst:             winpr_unwind_backtrace_free
    - functionName:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 216
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - tag
        - log_level
        - line
        - file
        - fkt
      BBCount:         9
      ICount:          67
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintMessageVA
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/wlog.h:206,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/wlog.h:207,30'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessageVA
            - BranchSide:      'winpr/include/winpr/wlog.h:209,26'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessageVA
        - Branch String:   'winpr/include/winpr/wlog.h:209,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/wlog.h:209,7'
              BranchSideFuncs:
                - WLog_PrintMessageVA
            - BranchSide:      'winpr/include/winpr/wlog.h:212,4'
              BranchSideFuncs:
                - WLog_PrintMessageVA
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:207,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:209,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:213,4'
          Dst:             WLog_PrintMessageVA
    - functionName:    winpr_log_backtrace
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/debug.c'
      linkageType:     InternalLinkage
      functionLinenumber: 172
      functionLinenumberEnd: 174
      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:173,25'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/utils/debug.c:173,2'
          Dst:             winpr_log_backtrace_ex
    - functionName:    winpr_backtrace_symbols_fd
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/debug.c'
      linkageType:     InternalLinkage
      functionLinenumber: 145
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - buffer
        - fd
      BBCount:         12
      ICount:          76
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
        - strnlen
        - winpr_backtrace_symbols
        - write
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/debug.c:146,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/debug.c:148,3'
              BranchSideFuncs:
                - winpr_backtrace_symbols
                - free
                - strnlen
                - write
            - BranchSide:      'winpr/libwinpr/utils/debug.c:156,10'
              BranchSideFuncs:
                - winpr_backtrace_symbols
                - free
                - strnlen
                - write
        - Branch String:   'winpr/libwinpr/utils/debug.c:159,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/debug.c:160,4'
              BranchSideFuncs:
                - free
                - strnlen
                - write
            - BranchSide:      'winpr/libwinpr/utils/debug.c:162,15'
              BranchSideFuncs:
                - free
                - strnlen
                - write
        - Branch String:   'winpr/libwinpr/utils/debug.c:162,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/debug.c:163,17'
              BranchSideFuncs:
                - strnlen
                - write
                - free
            - BranchSide:      'winpr/libwinpr/utils/debug.c:164,15'
              BranchSideFuncs:
                - free
      Callsites:
        - Src:             'winpr/libwinpr/utils/debug.c:148,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/utils/debug.c:157,18'
          Dst:             winpr_backtrace_symbols
        - Src:             'winpr/libwinpr/utils/debug.c:163,41'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/utils/debug.c:163,10'
          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:74,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/unwind/debug.c:76,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/unwind/debug.c:78,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: 168
      functionLinenumberEnd: 206
      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:178,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/unwind/debug.c:179,3'
              BranchSideFuncs:
                - calloc
                - dladdr
                - snprintf
                - snprintf
            - BranchSide:      'winpr/libwinpr/utils/unwind/debug.c:181,18'
              BranchSideFuncs:
                - calloc
                - dladdr
                - snprintf
                - snprintf
        - Branch String:   'winpr/libwinpr/utils/unwind/debug.c:182,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/unwind/debug.c:183,3'
              BranchSideFuncs:
                - dladdr
                - snprintf
                - snprintf
            - BranchSide:      'winpr/libwinpr/utils/unwind/debug.c:185,6'
              BranchSideFuncs:
                - dladdr
                - snprintf
                - snprintf
        - Branch String:   'winpr/libwinpr/utils/unwind/debug.c:185,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/unwind/debug.c:186,11'
              BranchSideFuncs:
                - dladdr
                - snprintf
                - snprintf
            - BranchSide:      'winpr/libwinpr/utils/unwind/debug.c:188,14'
              BranchSideFuncs:
                - dladdr
                - snprintf
                - snprintf
        - Branch String:   'winpr/libwinpr/utils/unwind/debug.c:188,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/unwind/debug.c:190,19'
              BranchSideFuncs:
                - dladdr
                - snprintf
                - snprintf
            - BranchSide:      'winpr/libwinpr/utils/unwind/debug.c:205,13'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/unwind/debug.c:197,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/unwind/debug.c:198,20'
              BranchSideFuncs:
                - snprintf
                - dladdr
                - snprintf
            - BranchSide:      'winpr/libwinpr/utils/unwind/debug.c:200,20'
              BranchSideFuncs:
                - snprintf
                - dladdr
                - snprintf
      Callsites:
        - Src:             'winpr/libwinpr/utils/unwind/debug.c:181,11'
          Dst:             calloc
        - Src:             'winpr/libwinpr/utils/unwind/debug.c:193,12'
          Dst:             dladdr
        - Src:             'winpr/libwinpr/utils/unwind/debug.c:198,10'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/utils/unwind/debug.c:200,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: 159
      functionLinenumberEnd: 165
      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:161,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/unwind/debug.c:162,3'
              BranchSideFuncs:
                - free
                - free
            - BranchSide:      'winpr/libwinpr/utils/unwind/debug.c:163,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:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 216
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - tag
        - log_level
        - line
        - file
        - fkt
      BBCount:         9
      ICount:          67
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintMessageVA
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/wlog.h:206,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/wlog.h:207,30'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessageVA
            - BranchSide:      'winpr/include/winpr/wlog.h:209,26'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessageVA
        - Branch String:   'winpr/include/winpr/wlog.h:209,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/wlog.h:209,7'
              BranchSideFuncs:
                - WLog_PrintMessageVA
            - BranchSide:      'winpr/include/winpr/wlog.h:212,4'
              BranchSideFuncs:
                - WLog_PrintMessageVA
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:207,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:209,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:213,4'
          Dst:             WLog_PrintMessageVA
    - 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,26'
              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:    __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:    3
      BranchProfiles:  []
      Callsites:       []
    - 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: 156
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - size
      BBCount:         12
      ICount:          80
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
        - _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
                - unwind_reason_str_buffer
                - WLog_Print_dbg_tag.1056
            - BranchSide:      'winpr/libwinpr/utils/unwind/debug.c:134,14'
              BranchSideFuncs:
                - calloc
                - winpr_unwind_backtrace_free
                - _Unwind_Backtrace
                - unwind_reason_str_buffer
                - WLog_Print_dbg_tag.1056
        - Branch String:   'winpr/libwinpr/utils/unwind/debug.c:136,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/unwind/debug.c:137,3'
              BranchSideFuncs:
                - _Unwind_Backtrace
                - unwind_reason_str_buffer
                - WLog_Print_dbg_tag.1056
            - BranchSide:      'winpr/libwinpr/utils/unwind/debug.c:139,52'
              BranchSideFuncs:
                - _Unwind_Backtrace
                - unwind_reason_str_buffer
                - WLog_Print_dbg_tag.1056
        - Branch String:   'winpr/libwinpr/utils/unwind/debug.c:140,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/unwind/debug.c:147,8'
              BranchSideFuncs:
                - unwind_reason_str_buffer
                - WLog_Print_dbg_tag.1056
            - BranchSide:      'winpr/libwinpr/utils/unwind/debug.c:152,9'
              BranchSideFuncs: []
      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:148,3'
          Dst:             unwind_reason_str_buffer
        - Src:             'winpr/libwinpr/utils/unwind/debug.c:148,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/utils/unwind/debug.c:154,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: 80
      functionLinenumberEnd: 95
      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:81,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:81,8'
              BranchSideFuncs:
                - WLog_Free
                - WLog_Free
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:81,8'
              BranchSideFuncs:
                - WLog_Free
                - WLog_Free
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:84,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:85,3'
              BranchSideFuncs:
                - WLog_Free
                - WLog_Free
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:87,13'
              BranchSideFuncs:
                - WLog_Free
                - WLog_Free
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:87,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:89,11'
              BranchSideFuncs:
                - WLog_Free
                - WLog_Free
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:93,12'
              BranchSideFuncs:
                - WLog_Free
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:90,3'
          Dst:             WLog_Free
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:93,2'
          Dst:             WLog_Free
    - functionName:    WLog_Free
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 912
      functionLinenumberEnd: 931
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - log
      BBCount:         12
      ICount:          79
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - DeleteCriticalSection
        - WLog_Appender_Free
      functionUses:    4
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:913,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:913,6'
              BranchSideFuncs:
                - free
                - free
                - free
                - DeleteCriticalSection
                - free
                - free
                - WLog_Appender_Free
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:915,7'
              BranchSideFuncs:
                - free
                - free
                - free
                - DeleteCriticalSection
                - free
                - free
                - WLog_Appender_Free
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:915,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:917,23'
              BranchSideFuncs:
                - WLog_Appender_Free
                - free
                - free
                - free
                - DeleteCriticalSection
                - free
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:921,8'
              BranchSideFuncs:
                - free
                - free
                - free
                - DeleteCriticalSection
                - free
                - free
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:924,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:925,9'
              BranchSideFuncs:
                - free
                - free
                - free
                - DeleteCriticalSection
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:926,15'
              BranchSideFuncs:
                - free
                - free
                - DeleteCriticalSection
                - free
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:917,4'
          Dst:             WLog_Appender_Free
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:928,3'
          Dst:             DeleteCriticalSection
    - functionName:    WLog_Unlock
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 104
      functionLinenumberEnd: 107
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - log
      BBCount:         9
      ICount:          32
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - LeaveCriticalSection
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:105,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:105,2'
              BranchSideFuncs:
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:105,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:105,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:106,2'
          Dst:             LeaveCriticalSection
    - functionName:    WLog_Lock
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 98
      functionLinenumberEnd: 101
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - log
      BBCount:         9
      ICount:          32
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - EnterCriticalSection
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:99,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:99,2'
              BranchSideFuncs:
                - EnterCriticalSection
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:99,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:99,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:100,2'
          Dst:             EnterCriticalSection
    - functionName:    WLog_AddChild
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 942
      functionLinenumberEnd: 982
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - parent
        - child
      BBCount:         14
      ICount:          127
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - WLog_Lock
        - WLog_Unlock
        - realloc
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:947,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:949,10'
              BranchSideFuncs:
                - free
                - WLog_Unlock
                - realloc
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:972,7'
              BranchSideFuncs:
                - WLog_Unlock
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:952,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:954,16'
              BranchSideFuncs:
                - realloc
                - free
                - WLog_Unlock
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:959,33'
              BranchSideFuncs:
                - realloc
                - free
                - WLog_Unlock
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:961,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:963,17'
              BranchSideFuncs:
                - WLog_Unlock
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:968,23'
              BranchSideFuncs:
                - WLog_Unlock
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:972,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:973,3'
              BranchSideFuncs:
                - WLog_Unlock
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:975,46'
              BranchSideFuncs:
                - WLog_Unlock
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:945,2'
          Dst:             WLog_Lock
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:959,18'
          Dst:             realloc
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:978,2'
          Dst:             WLog_Unlock
    - functionName:    WLog_FindChild
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 986
      functionLinenumberEnd: 1009
      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:990,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:991,3'
              BranchSideFuncs:
                - WLog_Lock
                - WLog_Unlock
                - strcmp
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:993,12'
              BranchSideFuncs:
                - WLog_Lock
                - WLog_Unlock
                - strcmp
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:995,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:997,11'
              BranchSideFuncs:
                - strcmp
                - WLog_Unlock
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:1006,14'
              BranchSideFuncs:
                - WLog_Unlock
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:999,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:1001,10'
              BranchSideFuncs:
                - WLog_Unlock
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:1004,2'
              BranchSideFuncs:
                - WLog_Unlock
                - strcmp
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:1008,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:1008,19'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:1008,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:993,2'
          Dst:             WLog_Lock
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:999,7'
          Dst:             strcmp
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:1006,2'
          Dst:             WLog_Unlock
    - functionName:    WLog_ParseName
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 787
      functionLinenumberEnd: 828
      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:793,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:795,8'
              BranchSideFuncs:
                - strchr
                - _strdup
                - calloc
                - free
                - strchr
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:799,18'
              BranchSideFuncs:
                - _strdup
                - calloc
                - free
                - strchr
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:801,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:802,3'
              BranchSideFuncs:
                - calloc
                - free
                - strchr
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:804,19'
              BranchSideFuncs:
                - calloc
                - free
                - strchr
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:807,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:809,8'
              BranchSideFuncs:
                - strchr
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:813,2'
              BranchSideFuncs:
                - strchr
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:818,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:820,7'
              BranchSideFuncs:
                - strchr
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:827,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:820,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:821,26'
              BranchSideFuncs:
                - strchr
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:823,4'
              BranchSideFuncs:
                - strchr
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:793,15'
          Dst:             strchr
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:799,10'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:805,23'
          Dst:             calloc
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:818,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: 715
      functionLinenumberEnd: 738
      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:725,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:726,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:728,22'
              BranchSideFuncs:
                - malloc
                - GetEnvironmentVariableA
                - free
                - WLog_AddStringLogFilters_int
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:730,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:731,3'
              BranchSideFuncs:
                - GetEnvironmentVariableA
                - free
                - WLog_AddStringLogFilters_int
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:733,30'
              BranchSideFuncs:
                - GetEnvironmentVariableA
                - free
                - WLog_AddStringLogFilters_int
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:733,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:734,38'
              BranchSideFuncs:
                - WLog_AddStringLogFilters_int
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:736,7'
              BranchSideFuncs:
                - free
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:723,10'
          Dst:             GetEnvironmentVariableA
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:733,6'
          Dst:             GetEnvironmentVariableA
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:734,9'
          Dst:             WLog_AddStringLogFilters_int
    - functionName:    WLog_AddStringLogFilters_int
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 494
      functionLinenumberEnd: 554
      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:498,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:499,3'
              BranchSideFuncs:
                - strchr
                - realloc
                - _strdup
                - strchr
                - free
                - WLog_reset_log_filters
                - WLog_ParseFilter
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:501,8'
              BranchSideFuncs:
                - strchr
                - realloc
                - _strdup
                - strchr
                - free
                - WLog_reset_log_filters
                - WLog_ParseFilter
                - free
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:504,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:506,8'
              BranchSideFuncs:
                - strchr
                - realloc
                - _strdup
                - strchr
                - free
                - WLog_reset_log_filters
                - WLog_ParseFilter
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:510,14'
              BranchSideFuncs:
                - realloc
                - _strdup
                - strchr
                - free
                - WLog_reset_log_filters
                - WLog_ParseFilter
                - free
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:514,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:515,3'
              BranchSideFuncs:
                - _strdup
                - strchr
                - free
                - WLog_reset_log_filters
                - WLog_ParseFilter
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:517,14'
              BranchSideFuncs:
                - _strdup
                - strchr
                - free
                - WLog_reset_log_filters
                - WLog_ParseFilter
                - free
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:520,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:521,3'
              BranchSideFuncs:
                - strchr
                - free
                - WLog_reset_log_filters
                - WLog_ParseFilter
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:523,6'
              BranchSideFuncs:
                - strchr
                - free
                - WLog_reset_log_filters
                - WLog_ParseFilter
                - free
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:530,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:531,5'
              BranchSideFuncs:
                - free
                - WLog_reset_log_filters
                - WLog_ParseFilter
                - free
                - strchr
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:533,7'
              BranchSideFuncs:
                - free
                - WLog_reset_log_filters
                - WLog_ParseFilter
                - free
                - strchr
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:533,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:535,26'
              BranchSideFuncs:
                - WLog_ParseFilter
                - free
                - free
                - WLog_reset_log_filters
                - strchr
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:542,4'
              BranchSideFuncs:
                - free
                - WLog_reset_log_filters
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:535,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:537,10'
              BranchSideFuncs:
                - free
                - WLog_reset_log_filters
                - strchr
                - WLog_ParseFilter
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:540,3'
              BranchSideFuncs:
                - free
                - WLog_reset_log_filters
                - strchr
                - WLog_ParseFilter
                - free
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:544,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:546,16'
              BranchSideFuncs:
                - free
                - WLog_reset_log_filters
                - strchr
                - WLog_ParseFilter
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:549,2'
              BranchSideFuncs:
                - free
                - WLog_reset_log_filters
                - strchr
                - WLog_ParseFilter
                - free
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:549,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:528,14'
              BranchSideFuncs:
                - strchr
                - free
                - WLog_reset_log_filters
                - WLog_ParseFilter
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:551,18'
              BranchSideFuncs:
                - free
                - WLog_reset_log_filters
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:504,16'
          Dst:             strchr
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:512,33'
          Dst:             realloc
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:518,20'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:528,7'
          Dst:             strchr
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:535,9'
          Dst:             WLog_ParseFilter
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:553,9'
          Dst:             WLog_reset_log_filters
    - functionName:    WLog_ParseFilter
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 632
      functionLinenumberEnd: 712
      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:643,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:644,3'
              BranchSideFuncs:
                - _strdup
                - calloc
                - free
                - strrchr
                - free
                - free
                - WLog_ParseLogLevel
                - strchr
                - free
                - free
                - strchr
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:646,7'
              BranchSideFuncs:
                - _strdup
                - calloc
                - free
                - strrchr
                - free
                - free
                - WLog_ParseLogLevel
                - strchr
                - free
                - free
                - strchr
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:648,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:650,3'
              BranchSideFuncs:
                - strchr
                - _strdup
                - calloc
                - free
                - strrchr
                - free
                - free
                - WLog_ParseLogLevel
                - strchr
                - free
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:657,18'
              BranchSideFuncs:
                - _strdup
                - calloc
                - free
                - strrchr
                - free
                - free
                - WLog_ParseLogLevel
                - strchr
                - free
                - free
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:650,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:652,9'
              BranchSideFuncs:
                - strchr
                - _strdup
                - calloc
                - free
                - strrchr
                - free
                - free
                - WLog_ParseLogLevel
                - strchr
                - free
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:655,2'
              BranchSideFuncs:
                - _strdup
                - calloc
                - free
                - strrchr
                - free
                - free
                - WLog_ParseLogLevel
                - strchr
                - free
                - free
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:659,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:660,3'
              BranchSideFuncs:
                - calloc
                - free
                - strrchr
                - free
                - free
                - WLog_ParseLogLevel
                - strchr
                - free
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:662,22'
              BranchSideFuncs:
                - calloc
                - free
                - strrchr
                - free
                - free
                - WLog_ParseLogLevel
                - strchr
                - free
                - free
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:665,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:667,8'
              BranchSideFuncs:
                - strrchr
                - free
                - free
                - WLog_ParseLogLevel
                - strchr
                - free
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:672,2'
              BranchSideFuncs:
                - strrchr
                - free
                - free
                - WLog_ParseLogLevel
                - strchr
                - free
                - free
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:678,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:680,8'
              BranchSideFuncs:
                - WLog_ParseLogLevel
                - strchr
                - free
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:687,3'
              BranchSideFuncs:
                - WLog_ParseLogLevel
                - strchr
                - free
                - free
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:691,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:693,8'
              BranchSideFuncs:
                - free
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:700,25'
              BranchSideFuncs:
                - strchr
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:702,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:704,7'
              BranchSideFuncs:
                - strchr
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:711,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:704,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:705,29'
              BranchSideFuncs:
                - strchr
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:707,4'
              BranchSideFuncs:
                - strchr
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:650,16'
          Dst:             strchr
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:657,10'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:663,26'
          Dst:             calloc
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:676,6'
          Dst:             strrchr
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:689,11'
          Dst:             WLog_ParseLogLevel
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:702,14'
          Dst:             strchr
    - functionName:    WLog_reset_log_filters
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 476
      functionLinenumberEnd: 491
      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:477,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:478,3'
              BranchSideFuncs:
                - WLog_reset_log_filters
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:480,2'
              BranchSideFuncs:
                - WLog_reset_log_filters
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:482,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:484,17'
              BranchSideFuncs:
                - WLog_reset_log_filters
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:490,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:486,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:487,4'
              BranchSideFuncs:
                - WLog_reset_log_filters
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:488,2'
              BranchSideFuncs:
                - WLog_reset_log_filters
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:486,8'
          Dst:             WLog_reset_log_filters
    - functionName:    WLog_ParseLogLevel
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 607
      functionLinenumberEnd: 629
      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:610,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:611,3'
              BranchSideFuncs:
                - _stricmp
                - _stricmp
                - _stricmp
                - _stricmp
                - _stricmp
                - _stricmp
                - _stricmp
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:613,15'
              BranchSideFuncs:
                - _stricmp
                - _stricmp
                - _stricmp
                - _stricmp
                - _stricmp
                - _stricmp
                - _stricmp
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:613,6'
          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
                - _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
                - _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
                - _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
                - _stricmp
                - _stricmp
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:621,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:622,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:623,20'
              BranchSideFuncs:
                - _stricmp
                - _stricmp
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:623,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:624,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:625,20'
              BranchSideFuncs:
                - _stricmp
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:613,6'
          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
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:623,11'
          Dst:             _stricmp
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:625,11'
          Dst:             _stricmp
    - functionName:    WLog_New
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 831
      functionLinenumberEnd: 909
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - name
        - rootLogger
      BBCount:         33
      ICount:          219
      EdgeCount:       45
      CyclomaticComplexity: 14
      functionsReached:
        - GetEnvironmentVariableA
        - InitializeCriticalSectionAndSpinCount
        - WLog_Free
        - WLog_GetFilterLogLevel
        - WLog_ParseLogLevel
        - WLog_ParseName
        - WLog_SetLogLevel
        - _strdup
        - calloc
        - fprintf
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:838,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:839,3'
              BranchSideFuncs:
                - _strdup
                - WLog_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:841,22'
              BranchSideFuncs:
                - _strdup
                - WLog_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:843,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:844,3'
              BranchSideFuncs:
                - WLog_ParseName
                - WLog_Free
                - calloc
                - GetEnvironmentVariableA
                - WLog_GetFilterLogLevel
                - InitializeCriticalSectionAndSpinCount
                - WLog_SetLogLevel
                - malloc
                - GetEnvironmentVariableA
                - WLog_ParseLogLevel
                - free
                - WLog_SetLogLevel
                - fprintf
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:846,22'
              BranchSideFuncs:
                - WLog_ParseName
                - WLog_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:846,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:847,3'
              BranchSideFuncs:
                - calloc
                - WLog_Free
                - GetEnvironmentVariableA
                - WLog_GetFilterLogLevel
                - InitializeCriticalSectionAndSpinCount
                - WLog_SetLogLevel
                - malloc
                - GetEnvironmentVariableA
                - WLog_ParseLogLevel
                - free
                - WLog_SetLogLevel
                - fprintf
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:849,16'
              BranchSideFuncs:
                - calloc
                - WLog_Free
                - GetEnvironmentVariableA
                - WLog_GetFilterLogLevel
                - InitializeCriticalSectionAndSpinCount
                - WLog_SetLogLevel
                - malloc
                - GetEnvironmentVariableA
                - WLog_ParseLogLevel
                - free
                - WLog_SetLogLevel
                - fprintf
                - free
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:854,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:855,3'
              BranchSideFuncs:
                - GetEnvironmentVariableA
                - WLog_GetFilterLogLevel
                - InitializeCriticalSectionAndSpinCount
                - WLog_SetLogLevel
                - WLog_Free
                - malloc
                - GetEnvironmentVariableA
                - WLog_ParseLogLevel
                - free
                - WLog_SetLogLevel
                - fprintf
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:857,2'
              BranchSideFuncs:
                - GetEnvironmentVariableA
                - WLog_GetFilterLogLevel
                - InitializeCriticalSectionAndSpinCount
                - WLog_SetLogLevel
                - WLog_Free
                - malloc
                - GetEnvironmentVariableA
                - WLog_ParseLogLevel
                - free
                - WLog_SetLogLevel
                - fprintf
                - free
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:859,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:861,3'
              BranchSideFuncs:
                - WLog_GetFilterLogLevel
                - InitializeCriticalSectionAndSpinCount
                - WLog_SetLogLevel
                - WLog_Free
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:866,10'
              BranchSideFuncs:
                - GetEnvironmentVariableA
                - WLog_GetFilterLogLevel
                - InitializeCriticalSectionAndSpinCount
                - WLog_SetLogLevel
                - WLog_Free
                - malloc
                - GetEnvironmentVariableA
                - WLog_ParseLogLevel
                - free
                - WLog_SetLogLevel
                - fprintf
                - free
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:874,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:875,5'
              BranchSideFuncs:
                - GetEnvironmentVariableA
                - WLog_ParseLogLevel
                - free
                - WLog_GetFilterLogLevel
                - InitializeCriticalSectionAndSpinCount
                - WLog_SetLogLevel
                - WLog_Free
                - WLog_SetLogLevel
                - fprintf
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:877,32'
              BranchSideFuncs:
                - GetEnvironmentVariableA
                - WLog_ParseLogLevel
                - free
                - WLog_GetFilterLogLevel
                - InitializeCriticalSectionAndSpinCount
                - WLog_SetLogLevel
                - WLog_Free
                - WLog_SetLogLevel
                - fprintf
                - free
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:877,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:879,19'
              BranchSideFuncs:
                - fprintf
                - free
                - WLog_Free
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:884,32'
              BranchSideFuncs:
                - WLog_ParseLogLevel
                - free
                - WLog_GetFilterLogLevel
                - InitializeCriticalSectionAndSpinCount
                - WLog_SetLogLevel
                - WLog_Free
                - WLog_SetLogLevel
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:887,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:889,27'
              BranchSideFuncs:
                - WLog_SetLogLevel
                - WLog_Free
                - WLog_GetFilterLogLevel
                - InitializeCriticalSectionAndSpinCount
                - WLog_SetLogLevel
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:892,3'
              BranchSideFuncs:
                - WLog_GetFilterLogLevel
                - InitializeCriticalSectionAndSpinCount
                - WLog_SetLogLevel
                - WLog_Free
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:889,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:890,6'
              BranchSideFuncs:
                - WLog_GetFilterLogLevel
                - InitializeCriticalSectionAndSpinCount
                - WLog_SetLogLevel
                - WLog_Free
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:891,4'
              BranchSideFuncs:
                - WLog_GetFilterLogLevel
                - InitializeCriticalSectionAndSpinCount
                - WLog_SetLogLevel
                - WLog_Free
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:897,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:899,25'
              BranchSideFuncs:
                - WLog_SetLogLevel
                - WLog_Free
                - InitializeCriticalSectionAndSpinCount
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:903,41'
              BranchSideFuncs:
                - InitializeCriticalSectionAndSpinCount
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:899,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:900,4'
              BranchSideFuncs:
                - InitializeCriticalSectionAndSpinCount
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:901,2'
              BranchSideFuncs:
                - InitializeCriticalSectionAndSpinCount
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:836,15'
          Dst:             calloc
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:841,14'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:846,7'
          Dst:             WLog_ParseName
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:854,32'
          Dst:             calloc
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:868,11'
          Dst:             GetEnvironmentVariableA
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:877,8'
          Dst:             GetEnvironmentVariableA
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:879,11'
          Dst:             fprintf
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:884,13'
          Dst:             WLog_ParseLogLevel
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:889,10'
          Dst:             WLog_SetLogLevel
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:895,11'
          Dst:             WLog_GetFilterLogLevel
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:899,8'
          Dst:             WLog_SetLogLevel
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:903,2'
          Dst:             InitializeCriticalSectionAndSpinCount
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:907,2'
          Dst:             WLog_Free
    - 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: 585
      functionLinenumberEnd: 604
      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:586,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:587,3'
              BranchSideFuncs:
                - WLog_reset_log_filters
                - WLog_UpdateInheritLevel
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:589,7'
              BranchSideFuncs:
                - WLog_reset_log_filters
                - WLog_UpdateInheritLevel
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:589,28'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:589,32'
              BranchSideFuncs:
                - WLog_reset_log_filters
                - WLog_UpdateInheritLevel
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:592,15'
              BranchSideFuncs:
                - WLog_reset_log_filters
                - WLog_UpdateInheritLevel
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:589,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:590,12'
              BranchSideFuncs:
                - WLog_reset_log_filters
                - WLog_UpdateInheritLevel
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:592,15'
              BranchSideFuncs:
                - WLog_reset_log_filters
                - WLog_UpdateInheritLevel
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:595,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:597,17'
              BranchSideFuncs:
                - WLog_UpdateInheritLevel
                - WLog_reset_log_filters
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:603,32'
              BranchSideFuncs:
                - WLog_reset_log_filters
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:599,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:600,4'
              BranchSideFuncs:
                - WLog_reset_log_filters
                - WLog_UpdateInheritLevel
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:601,2'
              BranchSideFuncs:
                - WLog_reset_log_filters
                - WLog_UpdateInheritLevel
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:599,8'
          Dst:             WLog_UpdateInheritLevel
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:603,9'
          Dst:             WLog_reset_log_filters
    - functionName:    WLog_GetFilterLogLevel
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 741
      functionLinenumberEnd: 784
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - log
      BBCount:         35
      ICount:          219
      EdgeCount:       44
      CyclomaticComplexity: 11
      functionsReached:
        - __assert_fail
        - _stricmp
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:744,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:745,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:747,2'
              BranchSideFuncs:
                - _stricmp
                - _stricmp
                - __assert_fail
                - __assert_fail
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:748,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:750,31'
              BranchSideFuncs:
                - _stricmp
                - _stricmp
                - __assert_fail
                - __assert_fail
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:783,9'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:751,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:753,8'
              BranchSideFuncs:
                - _stricmp
                - _stricmp
                - __assert_fail
                - __assert_fail
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:779,7'
              BranchSideFuncs:
                - _stricmp
                - _stricmp
                - __assert_fail
                - __assert_fail
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:753,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:754,5'
              BranchSideFuncs:
                - _stricmp
                - _stricmp
                - __assert_fail
                - __assert_fail
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:756,17'
              BranchSideFuncs:
                - _stricmp
                - _stricmp
                - __assert_fail
                - __assert_fail
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:756,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:758,11'
              BranchSideFuncs:
                - __assert_fail
                - _stricmp
                - _stricmp
                - __assert_fail
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:764,17'
              BranchSideFuncs:
                - _stricmp
                - _stricmp
                - __assert_fail
                - __assert_fail
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:759,5'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:759,5'
              BranchSideFuncs:
                - _stricmp
                - _stricmp
                - __assert_fail
                - __assert_fail
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:760,30'
              BranchSideFuncs:
                - _stricmp
                - _stricmp
                - __assert_fail
                - __assert_fail
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:764,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:765,5'
              BranchSideFuncs:
                - _stricmp
                - _stricmp
                - __assert_fail
                - __assert_fail
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:767,8'
              BranchSideFuncs:
                - _stricmp
                - _stricmp
                - __assert_fail
                - __assert_fail
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:767,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:769,13'
              BranchSideFuncs:
                - _stricmp
                - _stricmp
                - __assert_fail
                - __assert_fail
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:777,3'
              BranchSideFuncs:
                - _stricmp
                - _stricmp
                - __assert_fail
                - __assert_fail
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:770,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:772,6'
              BranchSideFuncs:
                - __assert_fail
                - _stricmp
                - _stricmp
                - __assert_fail
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:775,5'
              BranchSideFuncs:
                - _stricmp
                - _stricmp
                - __assert_fail
                - __assert_fail
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:772,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:772,6'
              BranchSideFuncs:
                - _stricmp
                - _stricmp
                - __assert_fail
                - __assert_fail
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:773,31'
              BranchSideFuncs:
                - _stricmp
                - _stricmp
                - __assert_fail
                - __assert_fail
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:779,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:780,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:781,2'
              BranchSideFuncs:
                - _stricmp
                - _stricmp
                - __assert_fail
                - __assert_fail
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:756,8'
          Dst:             _stricmp
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:759,5'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:764,8'
          Dst:             _stricmp
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:772,6'
          Dst:             __assert_fail
    - functionName:    WLog_UpdateInheritLevel
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 564
      functionLinenumberEnd: 582
      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:565,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:566,3'
              BranchSideFuncs:
                - WLog_UpdateInheritLevel
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:568,6'
              BranchSideFuncs:
                - WLog_UpdateInheritLevel
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:568,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:570,16'
              BranchSideFuncs:
                - WLog_UpdateInheritLevel
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:581,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:572,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:574,18'
              BranchSideFuncs:
                - WLog_UpdateInheritLevel
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:579,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:576,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:577,5'
              BranchSideFuncs:
                - WLog_UpdateInheritLevel
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:578,3'
              BranchSideFuncs:
                - WLog_UpdateInheritLevel
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:576,9'
          Dst:             WLog_UpdateInheritLevel
    - functionName:    log_recursion
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 179
      functionLinenumberEnd: 226
      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:188,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:189,3'
              BranchSideFuncs:
                - winpr_backtrace_symbols
                - free
                - winpr_backtrace_free
                - fprintf
                - fprintf
                - fprintf
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:191,32'
              BranchSideFuncs:
                - winpr_backtrace_symbols
                - free
                - winpr_backtrace_free
                - fprintf
                - fprintf
                - fprintf
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:193,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:194,3'
              BranchSideFuncs:
                - fprintf
                - fprintf
                - free
                - winpr_backtrace_free
                - fprintf
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:210,14'
              BranchSideFuncs:
                - fprintf
                - fprintf
                - free
                - winpr_backtrace_free
                - fprintf
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:210,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:211,3'
              BranchSideFuncs:
                - free
                - winpr_backtrace_free
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:213,14'
              BranchSideFuncs:
                - fprintf
                - free
                - winpr_backtrace_free
                - fprintf
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:213,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:214,3'
              BranchSideFuncs:
                - free
                - winpr_backtrace_free
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:216,14'
              BranchSideFuncs:
                - free
                - winpr_backtrace_free
                - fprintf
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:216,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:217,15'
              BranchSideFuncs:
                - fprintf
                - free
                - winpr_backtrace_free
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:221,9'
              BranchSideFuncs:
                - free
                - winpr_backtrace_free
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:217,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:217,65'
              BranchSideFuncs:
                - free
                - winpr_backtrace_free
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:218,4'
              BranchSideFuncs:
                - free
                - winpr_backtrace_free
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:183,13'
          Dst:             winpr_backtrace
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:191,8'
          Dst:             winpr_backtrace_symbols
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:210,6'
          Dst:             fprintf
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:213,6'
          Dst:             fprintf
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:217,7'
          Dst:             fprintf
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:224,2'
          Dst:             winpr_backtrace_free
    - functionName:    WLog_SetContext
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1070
      functionLinenumberEnd: 1075
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - log
        - fkt
        - context
      BBCount:         9
      ICount:          43
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:1071,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:1071,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:1071,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:1071,2'
          Dst:             winpr_int_assert
    - functionName:    WLog_Get_int
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1012
      functionLinenumberEnd: 1031
      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:1015,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:1017,8'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:1030,9'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:1017,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:1018,4'
              BranchSideFuncs:
                - WLog_New
                - WLog_AddChild
                - WLog_Free
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:1020,24'
              BranchSideFuncs:
                - WLog_New
                - WLog_AddChild
                - WLog_Free
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:1020,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:1021,4'
              BranchSideFuncs:
                - WLog_AddChild
                - WLog_Free
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:1023,22'
              BranchSideFuncs:
                - WLog_AddChild
                - WLog_Free
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:1023,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:1025,14'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:1028,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:1015,14'
          Dst:             WLog_FindChild
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:1020,15'
          Dst:             WLog_New
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:1023,8'
          Dst:             WLog_AddChild
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:1025,4'
          Dst:             WLog_Free
    - functionName:    WLog_Get
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1034
      functionLinenumberEnd: 1036
      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:    42
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:1035,15'
          Dst:             WLog_GetRoot
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:1036,9'
          Dst:             WLog_Get_int
    - functionName:    WLog_GetRoot
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 934
      functionLinenumberEnd: 939
      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:935,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:935,7'
              BranchSideFuncs:
                - winpr_InitOnceExecuteOnce
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:935,7'
              BranchSideFuncs:
                - winpr_InitOnceExecuteOnce
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:935,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:936,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:938,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:935,7'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:935,7'
          Dst:             WLog_InitializeRoot
    - functionName:    WLog_InitializeRoot
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 110
      functionLinenumberEnd: 176
      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:120,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:121,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:123,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:127,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:129,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:164,31'
              BranchSideFuncs:
                - WLog_SetLogAppenderType
                - WLog_Uninit_
                - WLog_ParseFilters
                - atexit
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:131,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:132,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:134,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:134,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:136,18'
              BranchSideFuncs:
                - fprintf
                - free
                - WLog_Uninit_
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:141,16'
              BranchSideFuncs:
                - _stricmp
                - _stricmp
                - _stricmp
                - _stricmp
                - _stricmp
                - free
                - WLog_SetLogAppenderType
                - WLog_Uninit_
                - WLog_ParseFilters
                - atexit
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:141,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:142,20'
              BranchSideFuncs:
                - free
                - WLog_SetLogAppenderType
                - WLog_Uninit_
                - WLog_ParseFilters
                - atexit
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:143,21'
              BranchSideFuncs:
                - _stricmp
                - _stricmp
                - _stricmp
                - _stricmp
                - free
                - WLog_SetLogAppenderType
                - WLog_Uninit_
                - WLog_ParseFilters
                - atexit
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:143,12'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:144,20'
              BranchSideFuncs:
                - free
                - WLog_SetLogAppenderType
                - WLog_Uninit_
                - WLog_ParseFilters
                - atexit
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:145,21'
              BranchSideFuncs:
                - _stricmp
                - _stricmp
                - _stricmp
                - free
                - WLog_SetLogAppenderType
                - WLog_Uninit_
                - WLog_ParseFilters
                - atexit
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:145,12'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:146,20'
              BranchSideFuncs:
                - free
                - WLog_SetLogAppenderType
                - WLog_Uninit_
                - WLog_ParseFilters
                - atexit
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:149,21'
              BranchSideFuncs:
                - _stricmp
                - _stricmp
                - free
                - WLog_SetLogAppenderType
                - WLog_Uninit_
                - WLog_ParseFilters
                - atexit
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:149,12'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:150,20'
              BranchSideFuncs:
                - free
                - WLog_SetLogAppenderType
                - WLog_Uninit_
                - WLog_ParseFilters
                - atexit
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:158,21'
              BranchSideFuncs:
                - _stricmp
                - free
                - WLog_SetLogAppenderType
                - WLog_Uninit_
                - WLog_ParseFilters
                - atexit
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:164,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:165,3'
              BranchSideFuncs:
                - WLog_ParseFilters
                - WLog_Uninit_
                - atexit
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:167,25'
              BranchSideFuncs:
                - WLog_ParseFilters
                - WLog_Uninit_
                - atexit
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:167,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:168,3'
              BranchSideFuncs:
                - atexit
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:170,8'
              BranchSideFuncs:
                - atexit
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:120,20'
          Dst:             WLog_New
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:125,10'
          Dst:             GetEnvironmentVariableA
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:134,7'
          Dst:             GetEnvironmentVariableA
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:136,10'
          Dst:             fprintf
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:141,7'
          Dst:             _stricmp
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:143,12'
          Dst:             _stricmp
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:145,12'
          Dst:             _stricmp
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:149,12'
          Dst:             _stricmp
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:158,12'
          Dst:             _stricmp
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:164,7'
          Dst:             WLog_SetLogAppenderType
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:167,7'
          Dst:             WLog_ParseFilters
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:170,8'
          Dst:             atexit
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:170,8'
          Dst:             WLog_Uninit_
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:174,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: 557
      functionLinenumberEnd: 560
      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:559,15'
          Dst:             WLog_GetRoot
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:560,9'
          Dst:             WLog_AddStringLogFilters_int
    - functionName:    WLog_SetStringLogLevel
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 461
      functionLinenumberEnd: 473
      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:464,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:464,15'
              BranchSideFuncs:
                - WLog_ParseLogLevel
                - WLog_SetLogLevel
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:465,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:464,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:465,3'
              BranchSideFuncs:
                - WLog_ParseLogLevel
                - WLog_SetLogLevel
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:467,27'
              BranchSideFuncs:
                - WLog_ParseLogLevel
                - WLog_SetLogLevel
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:469,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:470,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:472,26'
              BranchSideFuncs:
                - WLog_SetLogLevel
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:467,8'
          Dst:             WLog_ParseLogLevel
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:472,9'
          Dst:             WLog_SetLogLevel
    - functionName:    WLog_IsLevelActive
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 446
      functionLinenumberEnd: 458
      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:    45
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:449,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:450,3'
              BranchSideFuncs:
                - WLog_GetLogLevel
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:452,27'
              BranchSideFuncs:
                - WLog_GetLogLevel
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:454,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:455,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:457,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:452,10'
          Dst:             WLog_GetLogLevel
    - functionName:    WLog_GetLogLevel
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 430
      functionLinenumberEnd: 443
      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:431,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:432,3'
              BranchSideFuncs:
                - WLog_GetLogLevel
                - WLog_GetFilterLogLevel
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:434,6'
              BranchSideFuncs:
                - WLog_GetLogLevel
                - WLog_GetFilterLogLevel
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:434,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:435,45'
              BranchSideFuncs:
                - WLog_GetFilterLogLevel
                - WLog_GetLogLevel
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:437,6'
              BranchSideFuncs:
                - WLog_GetLogLevel
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:437,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:438,17'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:439,11'
              BranchSideFuncs:
                - WLog_GetLogLevel
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:435,22'
          Dst:             WLog_GetFilterLogLevel
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:440,16'
          Dst:             WLog_GetLogLevel
    - functionName:    WLog_PrintMessage
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 420
      functionLinenumberEnd: 426
      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:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:424,11'
          Dst:             WLog_PrintMessageVA
    - functionName:    WLog_PrintMessageVA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 354
      functionLinenumberEnd: 416
      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:    38
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:363,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:366,27'
              BranchSideFuncs:
                - strchr
                - WLog_Write
                - vsnprintf
                - WLog_Write
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:391,19'
              BranchSideFuncs:
                - WLog_WriteData
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:397,24'
              BranchSideFuncs:
                - WLog_WriteImage
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:405,25'
              BranchSideFuncs:
                - WLog_WritePacket
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:412,4'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:366,27'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:366,27'
              BranchSideFuncs:
                - strchr
                - WLog_Write
                - vsnprintf
                - WLog_Write
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:366,27'
              BranchSideFuncs:
                - strchr
                - WLog_Write
                - vsnprintf
                - WLog_Write
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:368,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:370,34'
              BranchSideFuncs:
                - vsnprintf
                - WLog_Write
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:375,10'
              BranchSideFuncs:
                - vsnprintf
                - WLog_Write
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:379,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:381,6'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:384,26'
              BranchSideFuncs:
                - WLog_Write
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:391,19'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:391,19'
              BranchSideFuncs:
                - WLog_WriteData
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:391,19'
              BranchSideFuncs:
                - WLog_WriteData
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:392,21'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:415,9'
              BranchSideFuncs:
                - WLog_WriteData
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:415,9'
              BranchSideFuncs:
                - WLog_WriteData
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:397,24'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:397,24'
              BranchSideFuncs:
                - WLog_WriteImage
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:397,24'
              BranchSideFuncs:
                - WLog_WriteImage
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:398,25'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:398,25'
              BranchSideFuncs:
                - WLog_WriteImage
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:398,25'
              BranchSideFuncs:
                - WLog_WriteImage
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:399,26'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:399,26'
              BranchSideFuncs:
                - WLog_WriteImage
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:399,26'
              BranchSideFuncs:
                - WLog_WriteImage
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:400,23'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:415,9'
              BranchSideFuncs:
                - WLog_WriteImage
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:415,9'
              BranchSideFuncs:
                - WLog_WriteImage
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:405,25'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:405,25'
              BranchSideFuncs:
                - WLog_WritePacket
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:405,25'
              BranchSideFuncs:
                - WLog_WritePacket
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:406,27'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:406,27'
              BranchSideFuncs:
                - WLog_WritePacket
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:406,27'
              BranchSideFuncs:
                - WLog_WritePacket
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:407,26'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:415,9'
              BranchSideFuncs:
                - WLog_WritePacket
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:415,9'
              BranchSideFuncs:
                - WLog_WritePacket
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:368,9'
          Dst:             strchr
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:371,14'
          Dst:             WLog_Write
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:379,9'
          Dst:             vsnprintf
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:385,14'
          Dst:             WLog_Write
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:393,13'
          Dst:             WLog_WriteData
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:401,13'
          Dst:             WLog_WriteImage
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:408,13'
          Dst:             WLog_WritePacket
    - functionName:    WLog_Write
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 229
      functionLinenumberEnd: 257
      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:234,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:235,3'
              BranchSideFuncs:
                - WLog_OpenAppender
                - EnterCriticalSection
                - LeaveCriticalSection
                - log_recursion
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:237,7'
              BranchSideFuncs:
                - WLog_OpenAppender
                - EnterCriticalSection
                - LeaveCriticalSection
                - log_recursion
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:237,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:238,26'
              BranchSideFuncs:
                - EnterCriticalSection
                - LeaveCriticalSection
                - log_recursion
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:241,24'
              BranchSideFuncs:
                - EnterCriticalSection
                - LeaveCriticalSection
                - log_recursion
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:238,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:238,29'
              BranchSideFuncs:
                - EnterCriticalSection
                - LeaveCriticalSection
                - log_recursion
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:239,4'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:243,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:245,7'
              BranchSideFuncs:
                - LeaveCriticalSection
                - log_recursion
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:255,24'
              BranchSideFuncs:
                - LeaveCriticalSection
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:245,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:246,27'
              BranchSideFuncs:
                - log_recursion
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:249,4'
              BranchSideFuncs:
                - LeaveCriticalSection
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:232,13'
          Dst:             WLog_GetLogAppender
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:238,8'
          Dst:             WLog_OpenAppender
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:241,2'
          Dst:             EnterCriticalSection
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:246,13'
          Dst:             log_recursion
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:255,2'
          Dst:             LeaveCriticalSection
    - functionName:    WLog_WriteData
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 260
      functionLinenumberEnd: 288
      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:265,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:266,3'
              BranchSideFuncs:
                - WLog_OpenAppender
                - EnterCriticalSection
                - LeaveCriticalSection
                - log_recursion
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:268,7'
              BranchSideFuncs:
                - WLog_OpenAppender
                - EnterCriticalSection
                - LeaveCriticalSection
                - log_recursion
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:268,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:269,26'
              BranchSideFuncs:
                - EnterCriticalSection
                - LeaveCriticalSection
                - log_recursion
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:272,7'
              BranchSideFuncs:
                - EnterCriticalSection
                - LeaveCriticalSection
                - log_recursion
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:269,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:269,29'
              BranchSideFuncs:
                - EnterCriticalSection
                - LeaveCriticalSection
                - log_recursion
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:270,4'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:272,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:273,3'
              BranchSideFuncs:
                - EnterCriticalSection
                - LeaveCriticalSection
                - log_recursion
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:275,24'
              BranchSideFuncs:
                - EnterCriticalSection
                - LeaveCriticalSection
                - log_recursion
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:277,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:278,26'
              BranchSideFuncs:
                - log_recursion
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:281,3'
              BranchSideFuncs:
                - LeaveCriticalSection
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:263,13'
          Dst:             WLog_GetLogAppender
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:269,8'
          Dst:             WLog_OpenAppender
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:275,2'
          Dst:             EnterCriticalSection
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:278,12'
          Dst:             log_recursion
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:286,2'
          Dst:             LeaveCriticalSection
    - functionName:    WLog_WriteImage
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 291
      functionLinenumberEnd: 319
      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:296,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:297,3'
              BranchSideFuncs:
                - WLog_OpenAppender
                - EnterCriticalSection
                - LeaveCriticalSection
                - log_recursion
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:299,7'
              BranchSideFuncs:
                - WLog_OpenAppender
                - EnterCriticalSection
                - LeaveCriticalSection
                - log_recursion
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:299,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:300,26'
              BranchSideFuncs:
                - EnterCriticalSection
                - LeaveCriticalSection
                - log_recursion
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:303,7'
              BranchSideFuncs:
                - EnterCriticalSection
                - LeaveCriticalSection
                - log_recursion
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:300,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:300,29'
              BranchSideFuncs:
                - EnterCriticalSection
                - LeaveCriticalSection
                - log_recursion
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:301,4'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:303,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:304,3'
              BranchSideFuncs:
                - EnterCriticalSection
                - LeaveCriticalSection
                - log_recursion
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:306,24'
              BranchSideFuncs:
                - EnterCriticalSection
                - LeaveCriticalSection
                - log_recursion
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:308,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:309,26'
              BranchSideFuncs:
                - log_recursion
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:312,3'
              BranchSideFuncs:
                - LeaveCriticalSection
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:294,13'
          Dst:             WLog_GetLogAppender
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:300,8'
          Dst:             WLog_OpenAppender
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:306,2'
          Dst:             EnterCriticalSection
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:309,12'
          Dst:             log_recursion
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:317,2'
          Dst:             LeaveCriticalSection
    - functionName:    WLog_WritePacket
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 322
      functionLinenumberEnd: 350
      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:327,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:328,3'
              BranchSideFuncs:
                - WLog_OpenAppender
                - EnterCriticalSection
                - LeaveCriticalSection
                - log_recursion
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:330,7'
              BranchSideFuncs:
                - WLog_OpenAppender
                - EnterCriticalSection
                - LeaveCriticalSection
                - log_recursion
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:330,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:331,26'
              BranchSideFuncs:
                - EnterCriticalSection
                - LeaveCriticalSection
                - log_recursion
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:334,7'
              BranchSideFuncs:
                - EnterCriticalSection
                - LeaveCriticalSection
                - log_recursion
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:331,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:331,29'
              BranchSideFuncs:
                - EnterCriticalSection
                - LeaveCriticalSection
                - log_recursion
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:332,4'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:334,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:335,3'
              BranchSideFuncs:
                - EnterCriticalSection
                - LeaveCriticalSection
                - log_recursion
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:337,24'
              BranchSideFuncs:
                - EnterCriticalSection
                - LeaveCriticalSection
                - log_recursion
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:339,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:340,26'
              BranchSideFuncs:
                - log_recursion
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:343,3'
              BranchSideFuncs:
                - LeaveCriticalSection
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:325,13'
          Dst:             WLog_GetLogAppender
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:331,8'
          Dst:             WLog_OpenAppender
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:337,2'
          Dst:             EnterCriticalSection
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:340,12'
          Dst:             log_recursion
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:348,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:    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: 124
      functionLinenumberEnd: 128
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - s
        - _offset
      BBCount:         15
      ICount:          53
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:125,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:125,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - winpr_int_assert
            - BranchSide:      'winpr/include/winpr/stream.h:125,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:126,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:126,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/stream.h:126,3'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:125,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:126,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:126,3'
          Dst:             winpr_int_assert
    - functionName:    winpr_Data_Write_UINT16
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/endian.h'
      linkageType:     InternalLinkage
      functionLinenumber: 235
      functionLinenumberEnd: 240
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - d
        - v
      BBCount:         9
      ICount:          51
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/endian.h:236,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/endian.h:236,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/endian.h:236,3'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/include/winpr/endian.h:236,3'
          Dst:             winpr_int_assert
    - functionName:    winpr_Data_Write_UINT32
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/endian.h'
      linkageType:     InternalLinkage
      functionLinenumber: 258
      functionLinenumberEnd: 263
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - d
        - v
      BBCount:         9
      ICount:          48
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_Data_Write_UINT16
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/endian.h:259,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/endian.h:259,3'
              BranchSideFuncs:
                - winpr_Data_Write_UINT16.1265
                - winpr_Data_Write_UINT16.1265
            - BranchSide:      'winpr/include/winpr/endian.h:259,3'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/include/winpr/endian.h:259,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/endian.h:261,3'
          Dst:             winpr_Data_Write_UINT16
        - Src:             'winpr/include/winpr/endian.h:262,3'
          Dst:             winpr_Data_Write_UINT16
    - functionName:    Stream_Buffer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1231
      functionLinenumberEnd: 1233
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - _s
      BBCount:         9
      ICount:          32
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:1232,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:1232,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/stream.h:1232,3'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1232,3'
          Dst:             winpr_int_assert
    - functionName:    Stream_Write
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1154
      functionLinenumberEnd: 1163
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - _s
        - _b
        - _n
      BBCount:         24
      ICount:          80
      EdgeCount:       25
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_GetRemainingCapacity
        - Stream_Seek
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:1155,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:1155,7'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - Stream_GetRemainingCapacity
                - winpr_int_assert
                - Stream_Seek.1260
            - BranchSide:      'winpr/include/winpr/stream.h:1157,4'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - Stream_GetRemainingCapacity
                - winpr_int_assert
                - Stream_Seek.1260
        - Branch String:   'winpr/include/winpr/stream.h:1157,4'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:1157,4'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_GetRemainingCapacity
                - winpr_int_assert
                - Stream_Seek.1260
            - BranchSide:      'winpr/include/winpr/stream.h:1157,4'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:1158,4'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:1158,4'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - winpr_int_assert
                - Stream_Seek.1260
            - BranchSide:      'winpr/include/winpr/stream.h:1158,4'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:1159,4'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:1159,4'
              BranchSideFuncs:
                - Stream_Seek.1260
            - BranchSide:      'winpr/include/winpr/stream.h:1159,4'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1157,4'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1158,4'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1159,4'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:1159,4'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1161,4'
          Dst:             Stream_Seek
    - functionName:    Stream_Write_UINT32_unchecked
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1054
      functionLinenumberEnd: 1061
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - _s
        - _v
      BBCount:         21
      ICount:          70
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - winpr_Data_Write_UINT32
        - winpr_int_assert
      functionUses:    7
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:1055,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:1055,3'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_GetRemainingCapacity
                - winpr_int_assert
                - winpr_Data_Write_UINT32.1269
            - BranchSide:      'winpr/include/winpr/stream.h:1055,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:1056,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:1056,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - winpr_int_assert
                - winpr_Data_Write_UINT32.1269
            - BranchSide:      'winpr/include/winpr/stream.h:1056,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:1057,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:1057,3'
              BranchSideFuncs:
                - winpr_Data_Write_UINT32.1269
            - BranchSide:      'winpr/include/winpr/stream.h:1057,3'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1055,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1056,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1057,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:1057,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1059,3'
          Dst:             winpr_Data_Write_UINT32
    - functionName:    WLog_BinaryAppender_Set
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/BinaryAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 185
      functionLinenumberEnd: 208
      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:189,13'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:189,25'
              BranchSideFuncs:
                - strnlen
                - strcmp
                - _strdup
                - strcmp
                - _strdup
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:190,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/BinaryAppender.c:189,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:190,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:192,32'
              BranchSideFuncs:
                - strcmp
                - _strdup
                - strcmp
                - _strdup
        - Branch String:   'winpr/libwinpr/utils/wlog/BinaryAppender.c:192,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:194,51'
              BranchSideFuncs:
                - strcmp
                - _strdup
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:198,37'
              BranchSideFuncs:
                - strcmp
                - _strdup
        - Branch String:   'winpr/libwinpr/utils/wlog/BinaryAppender.c:195,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:196,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:197,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/BinaryAppender.c:198,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:200,51'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:205,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/BinaryAppender.c:201,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:202,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:203,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:189,17'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:192,7'
          Dst:             strcmp
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:194,30'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:198,12'
          Dst:             strcmp
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:200,30'
          Dst:             _strdup
    - functionName:    WLog_BinaryAppender_Free
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/BinaryAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 211
      functionLinenumberEnd: 221
      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:213,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:213,6'
              BranchSideFuncs:
                - free
                - free
                - free
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:215,41'
              BranchSideFuncs:
                - free
                - free
                - free
                - free
      Callsites:       []
    - functionName:    WLog_BinaryAppender_WriteImageMessage
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/BinaryAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 180
      functionLinenumberEnd: 181
      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: 173
      functionLinenumberEnd: 174
      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:         131
      ICount:          466
      EdgeCount:       141
      CyclomaticComplexity: 12
      functionsReached:
        - Stream_Buffer
        - Stream_Free
        - Stream_New
        - Stream_SealLength
        - Stream_Write
        - Stream_Write_UINT32_unchecked
        - fwrite
        - strnlen
        - winpr_int_assert
      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
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - Stream_Write.1272
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - Stream_Write.1272
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - Stream_Write.1272
                - 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
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - Stream_Write.1272
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - Stream_Write.1272
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - Stream_Write.1272
                - 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
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - Stream_Write.1272
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - Stream_Write.1272
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - Stream_Write.1272
                - Stream_SealLength
                - Stream_Buffer
                - fwrite
                - Stream_Free
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:121,40'
              BranchSideFuncs:
                - strnlen
                - strnlen
                - strnlen
                - Stream_New
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - Stream_Write.1272
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - Stream_Write.1272
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - Stream_Write.1272
                - 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
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - Stream_Write.1272
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - Stream_Write.1272
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - Stream_Write.1272
                - Stream_SealLength
                - Stream_Buffer
                - fwrite
                - Stream_Free
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:128,27'
              BranchSideFuncs:
                - strnlen
                - strnlen
                - strnlen
                - Stream_New
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - Stream_Write.1272
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - Stream_Write.1272
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - Stream_Write.1272
                - 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
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - Stream_Write.1272
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - Stream_Write.1272
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - Stream_Write.1272
                - 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:
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - Stream_Write.1272
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - Stream_Write.1272
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - Stream_Write.1272
                - Stream_SealLength
                - Stream_Buffer
                - fwrite
                - Stream_Free
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:143,2'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - Stream_Write.1272
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - Stream_Write.1272
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - Stream_Write.1272
                - Stream_SealLength
                - Stream_Buffer
                - fwrite
                - Stream_Free
        - Branch String:   'winpr/libwinpr/utils/wlog/BinaryAppender.c:143,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:143,2'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - Stream_Write.1272
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - Stream_Write.1272
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - Stream_Write.1272
                - Stream_SealLength
                - Stream_Buffer
                - fwrite
                - Stream_Free
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:143,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/BinaryAppender.c:143,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:143,2'
              BranchSideFuncs:
                - Stream_Write_UINT32_unchecked.1276
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - Stream_Write.1272
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - Stream_Write.1272
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - Stream_Write.1272
                - Stream_SealLength
                - Stream_Buffer
                - fwrite
                - Stream_Free
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:143,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/BinaryAppender.c:145,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:145,2'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - Stream_Write.1272
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - Stream_Write.1272
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - Stream_Write.1272
                - Stream_SealLength
                - Stream_Buffer
                - fwrite
                - Stream_Free
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:145,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/BinaryAppender.c:145,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:145,2'
              BranchSideFuncs:
                - Stream_Write_UINT32_unchecked.1276
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - Stream_Write.1272
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - Stream_Write.1272
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - Stream_Write.1272
                - Stream_SealLength
                - Stream_Buffer
                - fwrite
                - Stream_Free
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:145,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/BinaryAppender.c:146,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:146,2'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - Stream_Write.1272
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - Stream_Write.1272
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - Stream_Write.1272
                - Stream_SealLength
                - Stream_Buffer
                - fwrite
                - Stream_Free
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:146,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/BinaryAppender.c:146,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:146,2'
              BranchSideFuncs:
                - Stream_Write_UINT32_unchecked.1276
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - Stream_Write.1272
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - Stream_Write.1272
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - Stream_Write.1272
                - Stream_SealLength
                - Stream_Buffer
                - fwrite
                - Stream_Free
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:146,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/BinaryAppender.c:148,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:148,2'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - Stream_Write.1272
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - Stream_Write.1272
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - Stream_Write.1272
                - Stream_SealLength
                - Stream_Buffer
                - fwrite
                - Stream_Free
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:148,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/BinaryAppender.c:149,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:149,2'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - Stream_Write.1272
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - Stream_Write.1272
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - Stream_Write.1272
                - Stream_SealLength
                - Stream_Buffer
                - fwrite
                - Stream_Free
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:149,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/BinaryAppender.c:149,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:149,2'
              BranchSideFuncs:
                - Stream_Write_UINT32_unchecked.1276
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - Stream_Write.1272
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - Stream_Write.1272
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - Stream_Write.1272
                - Stream_SealLength
                - Stream_Buffer
                - fwrite
                - Stream_Free
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:149,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/BinaryAppender.c:151,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:151,2'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - Stream_Write.1272
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - Stream_Write.1272
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - Stream_Write.1272
                - Stream_SealLength
                - Stream_Buffer
                - fwrite
                - Stream_Free
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:151,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/BinaryAppender.c:151,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:151,2'
              BranchSideFuncs:
                - Stream_Write_UINT32_unchecked.1276
                - Stream_Write.1272
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - Stream_Write.1272
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - Stream_Write.1272
                - Stream_SealLength
                - Stream_Buffer
                - fwrite
                - Stream_Free
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:151,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/BinaryAppender.c:154,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:154,2'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - Stream_Write.1272
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - Stream_Write.1272
                - Stream_SealLength
                - Stream_Buffer
                - fwrite
                - Stream_Free
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:154,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/BinaryAppender.c:154,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:154,2'
              BranchSideFuncs:
                - Stream_Write_UINT32_unchecked.1276
                - Stream_Write.1272
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - Stream_Write.1272
                - Stream_SealLength
                - Stream_Buffer
                - fwrite
                - Stream_Free
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:154,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/BinaryAppender.c:157,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:157,2'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.1276
                - Stream_Write.1272
                - Stream_SealLength
                - Stream_Buffer
                - fwrite
                - Stream_Free
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:157,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/BinaryAppender.c:157,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:157,2'
              BranchSideFuncs:
                - Stream_Write_UINT32_unchecked.1276
                - Stream_Write.1272
                - Stream_SealLength
                - Stream_Buffer
                - fwrite
                - Stream_Free
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:157,2'
              BranchSideFuncs:
                - winpr_int_assert
        - 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:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:143,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:143,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:145,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:145,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:145,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:146,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:146,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:146,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:148,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:149,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:149,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:149,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:151,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:151,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:151,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:152,2'
          Dst:             Stream_Write
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:154,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:154,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:154,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:155,2'
          Dst:             Stream_Write
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:157,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:157,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:157,2'
          Dst:             Stream_Write_UINT32_unchecked
        - 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: 224
      functionLinenumberEnd: 241
      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:228,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:229,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:231,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:227,40'
          Dst:             calloc
    - functionName:    WLog_CallbackAppender_Set
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/CallbackAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 121
      functionLinenumberEnd: 134
      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:124,13'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/CallbackAppender.c:124,24'
              BranchSideFuncs:
                - strcmp
                - calloc
            - BranchSide:      'winpr/libwinpr/utils/wlog/CallbackAppender.c:125,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/CallbackAppender.c:124,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/CallbackAppender.c:125,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/CallbackAppender.c:127,38'
              BranchSideFuncs:
                - calloc
        - Branch String:   'winpr/libwinpr/utils/wlog/CallbackAppender.c:127,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/CallbackAppender.c:129,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/CallbackAppender.c:132,39'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/CallbackAppender.c:124,17'
          Dst:             strcmp
        - Src:             'winpr/libwinpr/utils/wlog/CallbackAppender.c:127,38'
          Dst:             calloc
    - functionName:    WLog_CallbackAppender_Free
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/CallbackAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 137
      functionLinenumberEnd: 148
      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:139,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/CallbackAppender.c:141,3'
              BranchSideFuncs:
                - free
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/CallbackAppender.c:144,44'
              BranchSideFuncs:
                - free
                - free
      Callsites:       []
    - functionName:    WLog_CallbackAppender_WritePacketMessage
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/CallbackAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 103
      functionLinenumberEnd: 118
      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:107,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/CallbackAppender.c:108,3'
              BranchSideFuncs:
                - WLog_Layout_GetMessagePrefix
            - BranchSide:      'winpr/libwinpr/utils/wlog/CallbackAppender.c:110,26'
              BranchSideFuncs:
                - WLog_Layout_GetMessagePrefix
        - Branch String:   'winpr/libwinpr/utils/wlog/CallbackAppender.c:114,34'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/CallbackAppender.c:114,37'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/CallbackAppender.c:117,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/CallbackAppender.c:114,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/CallbackAppender.c:115,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/CallbackAppender.c:117,3'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/CallbackAppender.c:111,2'
          Dst:             WLog_Layout_GetMessagePrefix
    - functionName:    WLog_CallbackAppender_WriteImageMessage
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/CallbackAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 84
      functionLinenumberEnd: 99
      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:88,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/CallbackAppender.c:89,3'
              BranchSideFuncs:
                - WLog_Layout_GetMessagePrefix
            - BranchSide:      'winpr/libwinpr/utils/wlog/CallbackAppender.c:91,26'
              BranchSideFuncs:
                - WLog_Layout_GetMessagePrefix
        - Branch String:   'winpr/libwinpr/utils/wlog/CallbackAppender.c:95,34'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/CallbackAppender.c:95,37'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/CallbackAppender.c:98,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/CallbackAppender.c:95,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/CallbackAppender.c:96,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/CallbackAppender.c:98,3'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/CallbackAppender.c:92,2'
          Dst:             WLog_Layout_GetMessagePrefix
    - functionName:    WLog_CallbackAppender_WriteDataMessage
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/CallbackAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 65
      functionLinenumberEnd: 80
      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:69,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/CallbackAppender.c:70,3'
              BranchSideFuncs:
                - WLog_Layout_GetMessagePrefix
            - BranchSide:      'winpr/libwinpr/utils/wlog/CallbackAppender.c:72,26'
              BranchSideFuncs:
                - WLog_Layout_GetMessagePrefix
        - Branch String:   'winpr/libwinpr/utils/wlog/CallbackAppender.c:76,34'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/CallbackAppender.c:76,37'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/CallbackAppender.c:79,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/CallbackAppender.c:76,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/CallbackAppender.c:77,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/CallbackAppender.c:79,3'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/CallbackAppender.c:73,2'
          Dst:             WLog_Layout_GetMessagePrefix
    - functionName:    WLog_CallbackAppender_WriteMessage
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/CallbackAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 45
      functionLinenumberEnd: 61
      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:49,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/CallbackAppender.c:50,3'
              BranchSideFuncs:
                - WLog_Layout_GetMessagePrefix
            - BranchSide:      'winpr/libwinpr/utils/wlog/CallbackAppender.c:52,26'
              BranchSideFuncs:
                - WLog_Layout_GetMessagePrefix
        - Branch String:   'winpr/libwinpr/utils/wlog/CallbackAppender.c:57,34'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/CallbackAppender.c:57,37'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/CallbackAppender.c:60,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/CallbackAppender.c:57,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/CallbackAppender.c:58,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/CallbackAppender.c:60,3'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/CallbackAppender.c:53,2'
          Dst:             WLog_Layout_GetMessagePrefix
    - functionName:    WLog_CallbackAppender_Close
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/CallbackAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 40
      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: 33
      functionLinenumberEnd: 34
      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: 151
      functionLinenumberEnd: 170
      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:155,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/CallbackAppender.c:156,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/CallbackAppender.c:158,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/CallbackAppender.c:154,44'
          Dst:             calloc
    - functionName:    WLog_ConsoleAppender_Free
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/ConsoleAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 240
      functionLinenumberEnd: 250
      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:241,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/ConsoleAppender.c:241,6'
              BranchSideFuncs:
                - free
                - Pcap_Close
            - BranchSide:      'winpr/libwinpr/utils/wlog/ConsoleAppender.c:243,7'
              BranchSideFuncs:
                - free
                - Pcap_Close
        - Branch String:   'winpr/libwinpr/utils/wlog/ConsoleAppender.c:243,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/ConsoleAppender.c:245,23'
              BranchSideFuncs:
                - Pcap_Close
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/ConsoleAppender.c:248,8'
              BranchSideFuncs:
                - free
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/ConsoleAppender.c:245,4'
          Dst:             Pcap_Close
    - functionName:    WLog_ConsoleAppender_Set
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/ConsoleAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 215
      functionLinenumberEnd: 237
      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:219,13'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/ConsoleAppender.c:219,25'
              BranchSideFuncs:
                - strnlen
                - strcmp
                - strcmp
                - strcmp
                - strcmp
                - strcmp
            - BranchSide:      'winpr/libwinpr/utils/wlog/ConsoleAppender.c:220,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/ConsoleAppender.c:219,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/ConsoleAppender.c:220,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/ConsoleAppender.c:222,29'
              BranchSideFuncs:
                - strcmp
                - strcmp
                - strcmp
                - strcmp
                - strcmp
        - Branch String:   'winpr/libwinpr/utils/wlog/ConsoleAppender.c:222,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/ConsoleAppender.c:223,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/ConsoleAppender.c:225,24'
              BranchSideFuncs:
                - strcmp
                - strcmp
                - strcmp
                - strcmp
        - Branch String:   'winpr/libwinpr/utils/wlog/ConsoleAppender.c:225,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/ConsoleAppender.c:226,3'
              BranchSideFuncs:
                - strcmp
                - strcmp
                - strcmp
            - BranchSide:      'winpr/libwinpr/utils/wlog/ConsoleAppender.c:227,29'
              BranchSideFuncs:
                - strcmp
                - strcmp
                - strcmp
        - Branch String:   'winpr/libwinpr/utils/wlog/ConsoleAppender.c:227,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/ConsoleAppender.c:228,3'
              BranchSideFuncs:
                - strcmp
                - strcmp
            - BranchSide:      'winpr/libwinpr/utils/wlog/ConsoleAppender.c:229,30'
              BranchSideFuncs:
                - strcmp
                - strcmp
        - Branch String:   'winpr/libwinpr/utils/wlog/ConsoleAppender.c:229,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/ConsoleAppender.c:230,3'
              BranchSideFuncs:
                - strcmp
            - BranchSide:      'winpr/libwinpr/utils/wlog/ConsoleAppender.c:231,28'
              BranchSideFuncs:
                - strcmp
        - Branch String:   'winpr/libwinpr/utils/wlog/ConsoleAppender.c:231,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/ConsoleAppender.c:232,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/ConsoleAppender.c:234,3'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/ConsoleAppender.c:219,17'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/utils/wlog/ConsoleAppender.c:222,6'
          Dst:             strcmp
        - Src:             'winpr/libwinpr/utils/wlog/ConsoleAppender.c:225,7'
          Dst:             strcmp
        - Src:             'winpr/libwinpr/utils/wlog/ConsoleAppender.c:227,12'
          Dst:             strcmp
        - Src:             'winpr/libwinpr/utils/wlog/ConsoleAppender.c:229,12'
          Dst:             strcmp
        - Src:             'winpr/libwinpr/utils/wlog/ConsoleAppender.c:231,12'
          Dst:             strcmp
    - functionName:    WLog_ConsoleAppender_WritePacketMessage
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/ConsoleAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 192
      functionLinenumberEnd: 213
      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:200,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/ConsoleAppender.c:202,18'
              BranchSideFuncs:
                - WLog_PacketMessage_Write
            - BranchSide:      'winpr/libwinpr/utils/wlog/ConsoleAppender.c:207,6'
              BranchSideFuncs:
                - WLog_PacketMessage_Write
        - Branch String:   'winpr/libwinpr/utils/wlog/ConsoleAppender.c:207,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/ConsoleAppender.c:208,43'
              BranchSideFuncs:
                - WLog_PacketMessage_Write
            - BranchSide:      'winpr/libwinpr/utils/wlog/ConsoleAppender.c:211,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/ConsoleAppender.c:202,18'
          Dst:             WLog_Message_GetOutputFileName
        - Src:             'winpr/libwinpr/utils/wlog/ConsoleAppender.c:203,43'
          Dst:             Pcap_Open
        - Src:             'winpr/libwinpr/utils/wlog/ConsoleAppender.c:208,10'
          Dst:             WLog_PacketMessage_Write
    - functionName:    WLog_ConsoleAppender_WriteImageMessage
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/ConsoleAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 169
      functionLinenumberEnd: 184
      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:177,17'
          Dst:             WLog_Message_GetOutputFileName
        - Src:             'winpr/libwinpr/utils/wlog/ConsoleAppender.c:179,2'
          Dst:             WLog_ImageMessage_Write
    - functionName:    WLog_ConsoleAppender_WriteDataMessage
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/ConsoleAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 146
      functionLinenumberEnd: 160
      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:154,17'
          Dst:             WLog_Message_GetOutputFileName
        - Src:             'winpr/libwinpr/utils/wlog/ConsoleAppender.c:156,2'
          Dst:             WLog_DataMessage_Write
    - functionName:    WLog_ConsoleAppender_WriteMessage
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/ConsoleAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 55
      functionLinenumberEnd: 139
      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:59,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/ConsoleAppender.c:60,3'
              BranchSideFuncs:
                - WLog_Layout_GetMessagePrefix
                - fprintf
            - BranchSide:      'winpr/libwinpr/utils/wlog/ConsoleAppender.c:62,42'
              BranchSideFuncs:
                - WLog_Layout_GetMessagePrefix
                - fprintf
        - Branch String:   'winpr/libwinpr/utils/wlog/ConsoleAppender.c:112,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/ConsoleAppender.c:115,9'
              BranchSideFuncs:
                - fprintf
            - BranchSide:      'winpr/libwinpr/utils/wlog/ConsoleAppender.c:118,9'
              BranchSideFuncs:
                - fprintf
            - BranchSide:      'winpr/libwinpr/utils/wlog/ConsoleAppender.c:121,12'
              BranchSideFuncs:
                - fprintf
        - Branch String:   'winpr/libwinpr/utils/wlog/ConsoleAppender.c:121,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/ConsoleAppender.c:126,11'
              BranchSideFuncs:
                - fprintf
            - BranchSide:      'winpr/libwinpr/utils/wlog/ConsoleAppender.c:126,11'
              BranchSideFuncs:
                - fprintf
            - BranchSide:      'winpr/libwinpr/utils/wlog/ConsoleAppender.c:126,11'
              BranchSideFuncs:
                - fprintf
            - BranchSide:      'winpr/libwinpr/utils/wlog/ConsoleAppender.c:129,11'
              BranchSideFuncs:
                - fprintf
        - Branch String:   'winpr/libwinpr/utils/wlog/ConsoleAppender.c:135,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/ConsoleAppender.c:136,17'
              BranchSideFuncs:
                - fprintf
            - BranchSide:      'winpr/libwinpr/utils/wlog/ConsoleAppender.c:138,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/ConsoleAppender.c:65,2'
          Dst:             WLog_Layout_GetMessagePrefix
        - Src:             'winpr/libwinpr/utils/wlog/ConsoleAppender.c:136,9'
          Dst:             fprintf
    - functionName:    WLog_ConsoleAppender_Close
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/ConsoleAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 50
      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: 43
      functionLinenumberEnd: 44
      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: 253
      functionLinenumberEnd: 280
      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:258,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/ConsoleAppender.c:259,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/ConsoleAppender.c:261,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/ConsoleAppender.c:256,42'
          Dst:             calloc
    - functionName:    WLog_UdpAppender_Set
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/UdpAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 131
      functionLinenumberEnd: 149
      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:136,13'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:136,25'
              BranchSideFuncs:
                - strnlen
                - strncmp
                - _strdup
                - WLog_UdpAppender_Open
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:137,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/UdpAppender.c:136,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:137,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:139,14'
              BranchSideFuncs:
                - strncmp
                - _strdup
                - WLog_UdpAppender_Open
                - free
        - Branch String:   'winpr/libwinpr/utils/wlog/UdpAppender.c:139,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:140,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:142,2'
              BranchSideFuncs:
                - _strdup
                - WLog_UdpAppender_Open
                - free
        - Branch String:   'winpr/libwinpr/utils/wlog/UdpAppender.c:144,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:145,8'
              BranchSideFuncs:
                - free
                - _strdup
                - WLog_UdpAppender_Open
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:147,43'
              BranchSideFuncs:
                - _strdup
                - WLog_UdpAppender_Open
        - Branch String:   'winpr/libwinpr/utils/wlog/UdpAppender.c:148,37'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:148,68'
              BranchSideFuncs:
                - WLog_UdpAppender_Open
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:148,37'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/UdpAppender.c:136,17'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/utils/wlog/UdpAppender.c:139,6'
          Dst:             strncmp
        - Src:             'winpr/libwinpr/utils/wlog/UdpAppender.c:147,22'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/utils/wlog/UdpAppender.c:148,40'
          Dst:             WLog_UdpAppender_Open
    - functionName:    WLog_UdpAppender_Open
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/UdpAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 80
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - log
        - appender
      BBCount:         35
      ICount:          244
      EdgeCount:       43
      CyclomaticComplexity: 10
      functionsReached:
        - freeaddrinfo
        - getaddrinfo
        - strchr
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/UdpAppender.c:47,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:48,3'
              BranchSideFuncs:
                - strchr
                - winpr_int_assert
                - winpr_int_assert
                - getaddrinfo
                - freeaddrinfo
                - freeaddrinfo
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:50,34'
              BranchSideFuncs:
                - strchr
                - winpr_int_assert
                - winpr_int_assert
                - getaddrinfo
                - freeaddrinfo
                - freeaddrinfo
        - Branch String:   'winpr/libwinpr/utils/wlog/UdpAppender.c:52,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:53,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:55,20'
              BranchSideFuncs:
                - strchr
                - winpr_int_assert
                - winpr_int_assert
                - getaddrinfo
                - freeaddrinfo
                - freeaddrinfo
        - Branch String:   'winpr/libwinpr/utils/wlog/UdpAppender.c:57,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:58,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - getaddrinfo
                - freeaddrinfo
                - freeaddrinfo
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:60,25'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - getaddrinfo
                - freeaddrinfo
                - freeaddrinfo
        - Branch String:   'winpr/libwinpr/utils/wlog/UdpAppender.c:60,25'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:60,25'
              BranchSideFuncs:
                - winpr_int_assert
                - getaddrinfo
                - freeaddrinfo
                - freeaddrinfo
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:60,25'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/UdpAppender.c:60,25'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:60,25'
              BranchSideFuncs:
                - winpr_int_assert
                - getaddrinfo
                - freeaddrinfo
                - freeaddrinfo
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:60,25'
              BranchSideFuncs:
                - winpr_int_assert
                - getaddrinfo
                - freeaddrinfo
                - freeaddrinfo
        - Branch String:   'winpr/libwinpr/utils/wlog/UdpAppender.c:60,25'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:60,25'
              BranchSideFuncs:
                - getaddrinfo
                - freeaddrinfo
                - freeaddrinfo
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:60,25'
              BranchSideFuncs:
                - winpr_int_assert
                - getaddrinfo
                - freeaddrinfo
                - freeaddrinfo
        - Branch String:   'winpr/libwinpr/utils/wlog/UdpAppender.c:60,25'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:60,25'
              BranchSideFuncs:
                - winpr_int_assert
                - getaddrinfo
                - freeaddrinfo
                - freeaddrinfo
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:60,25'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/UdpAppender.c:60,25'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:60,25'
              BranchSideFuncs:
                - getaddrinfo
                - freeaddrinfo
                - freeaddrinfo
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:60,25'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/UdpAppender.c:67,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:68,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:70,6'
              BranchSideFuncs:
                - freeaddrinfo
                - freeaddrinfo
        - Branch String:   'winpr/libwinpr/utils/wlog/UdpAppender.c:70,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:72,16'
              BranchSideFuncs:
                - freeaddrinfo
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:76,10'
              BranchSideFuncs:
                - freeaddrinfo
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/UdpAppender.c:55,13'
          Dst:             strchr
        - Src:             'winpr/libwinpr/utils/wlog/UdpAppender.c:60,25'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/UdpAppender.c:60,25'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/UdpAppender.c:65,11'
          Dst:             getaddrinfo
        - Src:             'winpr/libwinpr/utils/wlog/UdpAppender.c:72,3'
          Dst:             freeaddrinfo
        - Src:             'winpr/libwinpr/utils/wlog/UdpAppender.c:78,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: 152
      functionLinenumberEnd: 168
      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:155,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:155,6'
              BranchSideFuncs:
                - free
                - free
                - closesocket
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:157,35'
              BranchSideFuncs:
                - free
                - free
                - closesocket
        - Branch String:   'winpr/libwinpr/utils/wlog/UdpAppender.c:159,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:161,16'
              BranchSideFuncs:
                - closesocket
                - free
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:165,8'
              BranchSideFuncs:
                - free
                - free
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/UdpAppender.c:161,4'
          Dst:             closesocket
    - functionName:    WLog_UdpAppender_WriteImageMessage
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/UdpAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 123
      functionLinenumberEnd: 128
      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:124,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:124,15'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:125,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/UdpAppender.c:124,24'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:124,28'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:125,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/UdpAppender.c:124,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:125,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:127,2'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    WLog_UdpAppender_WriteDataMessage
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/UdpAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 114
      functionLinenumberEnd: 119
      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:115,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:115,15'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:116,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/UdpAppender.c:115,24'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:115,28'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:116,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/UdpAppender.c:115,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:116,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:118,2'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    WLog_UdpAppender_WriteMessage
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/UdpAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 91
      functionLinenumberEnd: 110
      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:95,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:95,15'
              BranchSideFuncs:
                - WLog_Layout_GetMessagePrefix
                - strnlen
                - _sendto
                - strnlen
                - _sendto
                - _sendto
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:96,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/UdpAppender.c:95,24'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:95,28'
              BranchSideFuncs:
                - WLog_Layout_GetMessagePrefix
                - strnlen
                - _sendto
                - strnlen
                - _sendto
                - _sendto
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:96,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/UdpAppender.c:95,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:96,3'
              BranchSideFuncs:
                - WLog_Layout_GetMessagePrefix
                - strnlen
                - _sendto
                - strnlen
                - _sendto
                - _sendto
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:98,34'
              BranchSideFuncs:
                - WLog_Layout_GetMessagePrefix
                - strnlen
                - _sendto
                - strnlen
                - _sendto
                - _sendto
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/UdpAppender.c:100,2'
          Dst:             WLog_Layout_GetMessagePrefix
        - Src:             'winpr/libwinpr/utils/wlog/UdpAppender.c:102,21'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/utils/wlog/UdpAppender.c:101,8'
          Dst:             _sendto
        - Src:             'winpr/libwinpr/utils/wlog/UdpAppender.c:105,21'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/utils/wlog/UdpAppender.c:104,8'
          Dst:             _sendto
        - Src:             'winpr/libwinpr/utils/wlog/UdpAppender.c:107,8'
          Dst:             _sendto
    - functionName:    WLog_UdpAppender_Close
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/UdpAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 83
      functionLinenumberEnd: 88
      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:84,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:84,15'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:85,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/UdpAppender.c:84,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:85,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:87,2'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    WLog_UdpAppender_New
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/UdpAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 171
      functionLinenumberEnd: 224
      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:177,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:178,3'
              BranchSideFuncs:
                - _socket
                - GetEnvironmentVariableA
                - _strdup
                - free
                - closesocket
                - free
                - malloc
                - GetEnvironmentVariableA
                - WLog_UdpAppender_Open
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:180,2'
              BranchSideFuncs:
                - _socket
                - GetEnvironmentVariableA
                - _strdup
                - free
                - closesocket
                - free
                - malloc
                - GetEnvironmentVariableA
                - WLog_UdpAppender_Open
        - Branch String:   'winpr/libwinpr/utils/wlog/UdpAppender.c:190,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:191,3'
              BranchSideFuncs:
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:193,7'
              BranchSideFuncs:
                - GetEnvironmentVariableA
                - _strdup
                - free
                - closesocket
                - free
                - malloc
                - GetEnvironmentVariableA
                - WLog_UdpAppender_Open
        - Branch String:   'winpr/libwinpr/utils/wlog/UdpAppender.c:196,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:198,34'
              BranchSideFuncs:
                - malloc
                - free
                - closesocket
                - free
                - GetEnvironmentVariableA
                - WLog_UdpAppender_Open
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:211,20'
              BranchSideFuncs:
                - _strdup
                - free
                - closesocket
                - free
        - Branch String:   'winpr/libwinpr/utils/wlog/UdpAppender.c:200,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:201,4'
              BranchSideFuncs:
                - GetEnvironmentVariableA
                - WLog_UdpAppender_Open
                - free
                - closesocket
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:203,31'
              BranchSideFuncs:
                - GetEnvironmentVariableA
                - WLog_UdpAppender_Open
                - free
                - closesocket
                - free
        - Branch String:   'winpr/libwinpr/utils/wlog/UdpAppender.c:203,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:204,4'
              BranchSideFuncs:
                - free
                - closesocket
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:206,30'
              BranchSideFuncs:
                - WLog_UdpAppender_Open
                - free
                - closesocket
                - free
        - Branch String:   'winpr/libwinpr/utils/wlog/UdpAppender.c:206,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:207,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:208,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/UdpAppender.c:213,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:0,0'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:214,4'
              BranchSideFuncs:
                - free
                - closesocket
                - free
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/UdpAppender.c:175,31'
          Dst:             calloc
        - Src:             'winpr/libwinpr/utils/wlog/UdpAppender.c:188,19'
          Dst:             _socket
        - Src:             'winpr/libwinpr/utils/wlog/UdpAppender.c:194,10'
          Dst:             GetEnvironmentVariableA
        - Src:             'winpr/libwinpr/utils/wlog/UdpAppender.c:203,7'
          Dst:             GetEnvironmentVariableA
        - Src:             'winpr/libwinpr/utils/wlog/UdpAppender.c:206,8'
          Dst:             WLog_UdpAppender_Open
        - Src:             'winpr/libwinpr/utils/wlog/UdpAppender.c:211,20'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/utils/wlog/UdpAppender.c:220,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: 110
      functionLinenumberEnd: 112
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - Handle
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/error/error.c:111,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 216
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - tag
        - log_level
        - line
        - file
        - fkt
      BBCount:         9
      ICount:          67
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintMessageVA
      functionUses:    10
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/wlog.h:206,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/wlog.h:207,30'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessageVA
            - BranchSide:      'winpr/include/winpr/wlog.h:209,26'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessageVA
        - Branch String:   'winpr/include/winpr/wlog.h:209,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/wlog.h:209,7'
              BranchSideFuncs:
                - WLog_PrintMessageVA
            - BranchSide:      'winpr/include/winpr/wlog.h:212,4'
              BranchSideFuncs:
                - WLog_PrintMessageVA
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:207,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:209,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:213,4'
          Dst:             WLog_PrintMessageVA
    - functionName:    AddVectoredContinueHandler
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/error/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 104
      functionLinenumberEnd: 106
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - First
        - Handler
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/error/error.c:105,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RemoveVectoredExceptionHandler
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/error/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 97
      functionLinenumberEnd: 99
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - Handle
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/error/error.c:98,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    AddVectoredExceptionHandler
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/error/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 91
      functionLinenumberEnd: 93
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - First
        - Handler
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/error/error.c:92,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SetUnhandledExceptionFilter
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/error/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 84
      functionLinenumberEnd: 86
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpTopLevelExceptionFilter
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/error/error.c:85,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    UnhandledExceptionFilter
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/error/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 76
      functionLinenumberEnd: 78
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ExceptionInfo
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/error/error.c:77,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RaiseException
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/error/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 71
      functionLinenumberEnd: 73
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - dwExceptionCode
        - dwExceptionFlags
        - nNumberOfArguments
        - lpArguments
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/error/error.c:72,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RestoreLastError
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/error/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 63
      functionLinenumberEnd: 65
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - dwErrCode
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/error/error.c:64,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SetLastError
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/error/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 54
      functionLinenumberEnd: 60
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - dwErrCode
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - NtCurrentTeb
      functionUses:    258
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/error/error.c:56,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/error/error.c:56,6'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/error/error.c:58,24'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/error/error.c:55,12'
          Dst:             NtCurrentTeb
    - functionName:    GetLastError
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/error/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 44
      functionLinenumberEnd: 51
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - NtCurrentTeb
      functionUses:    5
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/error/error.c:45,12'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/error/error.c:45,7'
              BranchSideFuncs:
                - NtCurrentTeb
            - BranchSide:      'winpr/libwinpr/error/error.c:45,12'
              BranchSideFuncs:
                - NtCurrentTeb
        - Branch String:   'winpr/libwinpr/error/error.c:46,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/error/error.c:48,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/error/error.c:50,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/error/error.c:45,12'
          Dst:             NtCurrentTeb
    - functionName:    SetErrorMode
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/error/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 40
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - uMode
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/error/error.c:39,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    GetErrorMode
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/error/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 32
      functionLinenumberEnd: 34
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/error/error.c:33,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/error/error.c:33,2'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.1451
            - BranchSide:      'winpr/libwinpr/error/error.c:33,2'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.1451
      Callsites:
        - Src:             'winpr/libwinpr/error/error.c:33,2'
          Dst:             WLog_Print_dbg_tag
    - 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: 547
      functionLinenumberEnd: 556
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - handle
      BBCount:         15
      ICount:          67
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - waitpid
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/process.c:550,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:550,2'
              BranchSideFuncs:
                - waitpid
            - BranchSide:      'winpr/libwinpr/thread/process.c:550,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/thread/process.c:551,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:551,6'
              BranchSideFuncs:
                - waitpid
            - BranchSide:      'winpr/libwinpr/thread/process.c:553,15'
              BranchSideFuncs:
                - waitpid
        - Branch String:   'winpr/libwinpr/thread/process.c:553,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:554,33'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/thread/process.c:555,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/thread/process.c:550,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/process.c:553,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: 537
      functionLinenumberEnd: 544
      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:540,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:541,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/thread/process.c:543,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/thread/process.c:540,7'
          Dst:             ProcessHandleIsHandle
    - functionName:    ProcessHandleIsHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 532
      functionLinenumberEnd: 533
      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:533,9'
          Dst:             WINPR_HANDLE_IS_HANDLED
    - functionName:    pidfd_open
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 582
      functionLinenumberEnd: 615
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - pid
      BBCount:         25
      ICount:          121
      EdgeCount:       33
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - close
        - fcntl64
        - syscall
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/process.c:593,13'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:593,16'
              BranchSideFuncs:
                - __errno_location
                - syscall
                - fcntl64
                - fcntl64
                - close
            - BranchSide:      'winpr/libwinpr/thread/process.c:609,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/thread/process.c:593,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:597,7'
              BranchSideFuncs:
                - syscall
                - fcntl64
                - fcntl64
                - close
            - BranchSide:      'winpr/libwinpr/thread/process.c:609,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/thread/process.c:599,16'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:599,20'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/thread/process.c:600,4'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/thread/process.c:599,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:600,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/thread/process.c:602,22'
              BranchSideFuncs:
                - fcntl64
                - fcntl64
                - close
        - Branch String:   'winpr/libwinpr/thread/process.c:603,19'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:603,33'
              BranchSideFuncs:
                - close
            - BranchSide:      'winpr/libwinpr/thread/process.c:605,15'
              BranchSideFuncs:
                - close
        - Branch String:   'winpr/libwinpr/thread/process.c:603,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:605,15'
              BranchSideFuncs:
                - close
            - BranchSide:      'winpr/libwinpr/thread/process.c:608,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/thread/process.c:609,15'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:609,19'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/thread/process.c:610,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/thread/process.c:609,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:610,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/thread/process.c:611,14'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/thread/process.c:592,12'
          Dst:             syscall
        - Src:             'winpr/libwinpr/thread/process.c:593,16'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/thread/process.c:598,8'
          Dst:             syscall
        - Src:             'winpr/libwinpr/thread/process.c:602,11'
          Dst:             fcntl64
        - Src:             'winpr/libwinpr/thread/process.c:603,22'
          Dst:             fcntl64
        - Src:             'winpr/libwinpr/thread/process.c:605,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:    26
      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: 519
      functionLinenumberEnd: 528
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - handle
      BBCount:         12
      ICount:          53
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - close
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/process.c:521,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:521,2'
              BranchSideFuncs:
                - free
                - close
            - BranchSide:      'winpr/libwinpr/thread/process.c:521,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/thread/process.c:522,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:522,6'
              BranchSideFuncs:
                - close
                - free
            - BranchSide:      'winpr/libwinpr/thread/process.c:524,9'
              BranchSideFuncs:
                - close
                - free
      Callsites:
        - Src:             'winpr/libwinpr/thread/process.c:521,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/process.c:524,3'
          Dst:             close
    - functionName:    CreateProcessHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 618
      functionLinenumberEnd: 632
      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:622,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:623,3'
              BranchSideFuncs:
                - pidfd_open
            - BranchSide:      'winpr/libwinpr/thread/process.c:625,17'
              BranchSideFuncs:
                - pidfd_open
        - Branch String:   'winpr/libwinpr/thread/process.c:629,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:630,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/thread/process.c:631,17'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/thread/process.c:620,28'
          Dst:             calloc
        - Src:             'winpr/libwinpr/thread/process.c:628,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: 100
      functionLinenumberEnd: 149
      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:108,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:109,3'
              BranchSideFuncs:
                - GetEnvironmentVariableA
                - _strdup
                - malloc
                - GetEnvironmentVariableA
                - strtok_s
                - free
                - GetCombinedPath
                - winpr_PathFileExists
                - free
                - strtok_s
                - free
                - _strdup
            - BranchSide:      'winpr/libwinpr/thread/process.c:111,6'
              BranchSideFuncs:
                - GetEnvironmentVariableA
                - _strdup
                - malloc
                - GetEnvironmentVariableA
                - strtok_s
                - free
                - GetCombinedPath
                - winpr_PathFileExists
                - free
                - strtok_s
                - free
                - _strdup
        - Branch String:   'winpr/libwinpr/thread/process.c:111,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:112,18'
              BranchSideFuncs:
                - _strdup
            - BranchSide:      'winpr/libwinpr/thread/process.c:114,34'
              BranchSideFuncs:
                - GetEnvironmentVariableA
                - _strdup
                - malloc
                - GetEnvironmentVariableA
                - strtok_s
                - free
                - GetCombinedPath
                - winpr_PathFileExists
                - free
                - strtok_s
                - free
        - Branch String:   'winpr/libwinpr/thread/process.c:116,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:117,18'
              BranchSideFuncs:
                - malloc
                - GetEnvironmentVariableA
                - strtok_s
                - free
                - GetCombinedPath
                - winpr_PathFileExists
                - free
                - strtok_s
                - free
            - BranchSide:      'winpr/libwinpr/thread/process.c:119,31'
              BranchSideFuncs:
                - malloc
                - GetEnvironmentVariableA
                - strtok_s
                - free
                - GetCombinedPath
                - winpr_PathFileExists
                - free
                - strtok_s
                - free
        - Branch String:   'winpr/libwinpr/thread/process.c:121,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:122,3'
              BranchSideFuncs:
                - GetEnvironmentVariableA
                - strtok_s
                - free
                - GetCombinedPath
                - winpr_PathFileExists
                - free
                - strtok_s
                - free
            - BranchSide:      'winpr/libwinpr/thread/process.c:124,30'
              BranchSideFuncs:
                - GetEnvironmentVariableA
                - strtok_s
                - free
                - GetCombinedPath
                - winpr_PathFileExists
                - free
                - strtok_s
                - free
        - Branch String:   'winpr/libwinpr/thread/process.c:124,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:126,8'
              BranchSideFuncs:
                - free
            - BranchSide:      'winpr/libwinpr/thread/process.c:130,7'
              BranchSideFuncs:
                - strtok_s
                - free
                - GetCombinedPath
                - winpr_PathFileExists
                - free
                - strtok_s
        - Branch String:   'winpr/libwinpr/thread/process.c:133,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:135,30'
              BranchSideFuncs:
                - GetCombinedPath
                - winpr_PathFileExists
                - free
                - strtok_s
                - free
            - BranchSide:      'winpr/libwinpr/thread/process.c:147,7'
              BranchSideFuncs:
                - free
        - Branch String:   'winpr/libwinpr/thread/process.c:137,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:139,4'
              BranchSideFuncs:
                - free
            - BranchSide:      'winpr/libwinpr/thread/process.c:142,8'
              BranchSideFuncs:
                - free
                - strtok_s
                - free
                - GetCombinedPath
                - winpr_PathFileExists
      Callsites:
        - Src:             'winpr/libwinpr/thread/process.c:112,10'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/thread/process.c:114,10'
          Dst:             GetEnvironmentVariableA
        - Src:             'winpr/libwinpr/thread/process.c:117,10'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/thread/process.c:124,6'
          Dst:             GetEnvironmentVariableA
        - Src:             'winpr/libwinpr/thread/process.c:131,9'
          Dst:             strtok_s
        - Src:             'winpr/libwinpr/thread/process.c:135,14'
          Dst:             GetCombinedPath
        - Src:             'winpr/libwinpr/thread/process.c:137,7'
          Dst:             winpr_PathFileExists
        - Src:             'winpr/libwinpr/thread/process.c:144,10'
          Dst:             strtok_s
    - functionName:    TerminateProcess
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 505
      functionLinenumberEnd: 516
      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:509,15'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:509,19'
              BranchSideFuncs:
                - kill
            - BranchSide:      'winpr/libwinpr/thread/process.c:510,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/thread/process.c:509,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:510,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/thread/process.c:512,11'
              BranchSideFuncs:
                - kill
        - Branch String:   'winpr/libwinpr/thread/process.c:512,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:513,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/thread/process.c:515,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/thread/process.c:512,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: 500
      functionLinenumberEnd: 501
      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:501,17'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:501,17'
              BranchSideFuncs:
                - getpid
            - BranchSide:      'winpr/libwinpr/thread/process.c:501,17'
              BranchSideFuncs:
                - getpid
      Callsites:
        - Src:             'winpr/libwinpr/thread/process.c:501,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: 494
      functionLinenumberEnd: 496
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/process.c:495,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:495,2'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.1516
            - BranchSide:      'winpr/libwinpr/thread/process.c:495,2'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.1516
      Callsites:
        - Src:             'winpr/libwinpr/thread/process.c:495,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 216
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - tag
        - log_level
        - line
        - file
        - fkt
      BBCount:         9
      ICount:          67
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintMessageVA
      functionUses:    6
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/wlog.h:206,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/wlog.h:207,30'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessageVA
            - BranchSide:      'winpr/include/winpr/wlog.h:209,26'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessageVA
        - Branch String:   'winpr/include/winpr/wlog.h:209,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/wlog.h:209,7'
              BranchSideFuncs:
                - WLog_PrintMessageVA
            - BranchSide:      'winpr/include/winpr/wlog.h:212,4'
              BranchSideFuncs:
                - WLog_PrintMessageVA
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:207,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:209,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:213,4'
          Dst:             WLog_PrintMessageVA
    - functionName:    GetExitCodeProcess
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 479
      functionLinenumberEnd: 491
      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:482,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:483,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/thread/process.c:485,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/thread/process.c:485,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:486,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/thread/process.c:488,28'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    CreateProcessWithTokenW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 467
      functionLinenumberEnd: 469
      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:          39
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/process.c:468,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    CreateProcessWithTokenA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 453
      functionLinenumberEnd: 456
      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:454,9'
          Dst:             CreateProcessExA
    - functionName:    CreateProcessExA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 162
      functionLinenumberEnd: 370
      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:         88
      ICount:          567
      EdgeCount:       118
      CyclomaticComplexity: 32
      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:180,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:181,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:183,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:185,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:186,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:188,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:190,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:192,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:196,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:198,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:199,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:201,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:204,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:205,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:207,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:209,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:210,3'
              BranchSideFuncs:
                - free
                - free
                - free
                - free
                - FreeEnvironmentStringsA
                - pthread_sigmask
            - BranchSide:      'winpr/libwinpr/thread/process.c:213,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:218,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:221,3'
              BranchSideFuncs:
                - free
                - free
                - free
                - free
                - FreeEnvironmentStringsA
                - pthread_sigmask
            - BranchSide:      'winpr/libwinpr/thread/process.c:224,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:224,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:228,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:237,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:238,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:241,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:244,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:246,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:270,20'
              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:249,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:250,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:252,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:254,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:255,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:257,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:259,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:260,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:261,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:271,25'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:271,29'
              BranchSideFuncs:
                - free
                - free
                - free
                - free
                - FreeEnvironmentStringsA
                - pthread_sigmask
            - BranchSide:      'winpr/libwinpr/thread/process.c:272,5'
              BranchSideFuncs:
                - free
                - free
                - free
                - free
                - FreeEnvironmentStringsA
                - pthread_sigmask
        - Branch String:   'winpr/libwinpr/thread/process.c:271,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:272,5'
              BranchSideFuncs:
                - free
                - free
                - free
                - free
                - FreeEnvironmentStringsA
                - pthread_sigmask
            - BranchSide:      'winpr/libwinpr/thread/process.c:273,17'
              BranchSideFuncs:
                - 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:277,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:278,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:282,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:282,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:284,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:306,7'
              BranchSideFuncs:
                - execve
                - CreateProcessHandle
                - free
                - free
                - free
                - free
                - FreeEnvironmentStringsA
                - pthread_sigmask
                - CreateNoneHandle
                - ProcessHandleCloseHandle
                - _exit
                - strlen
                - chdir
        - Branch String:   'winpr/libwinpr/thread/process.c:284,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:286,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:297,8'
              BranchSideFuncs:
                - execve
                - CreateProcessHandle
                - free
                - free
                - free
                - free
                - FreeEnvironmentStringsA
                - pthread_sigmask
                - CreateNoneHandle
                - ProcessHandleCloseHandle
                - _exit
                - strlen
                - chdir
                - setuid
        - Branch String:   'winpr/libwinpr/thread/process.c:288,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:290,5'
              BranchSideFuncs:
                - execve
                - CreateProcessHandle
                - free
                - free
                - free
                - free
                - FreeEnvironmentStringsA
                - pthread_sigmask
                - CreateNoneHandle
                - ProcessHandleCloseHandle
                - _exit
                - strlen
                - chdir
                - setuid
            - BranchSide:      'winpr/libwinpr/thread/process.c:293,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:297,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:299,28'
              BranchSideFuncs:
                - setuid
                - execve
                - CreateProcessHandle
                - free
                - free
                - free
                - free
                - FreeEnvironmentStringsA
                - pthread_sigmask
                - CreateNoneHandle
                - ProcessHandleCloseHandle
                - _exit
                - strlen
                - chdir
            - BranchSide:      'winpr/libwinpr/thread/process.c:303,3'
              BranchSideFuncs:
                - execve
                - CreateProcessHandle
                - free
                - free
                - free
                - free
                - FreeEnvironmentStringsA
                - pthread_sigmask
                - CreateNoneHandle
                - ProcessHandleCloseHandle
                - _exit
                - strlen
                - chdir
        - Branch String:   'winpr/libwinpr/thread/process.c:300,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:301,6'
              BranchSideFuncs:
                - free
                - free
                - free
                - free
                - FreeEnvironmentStringsA
                - pthread_sigmask
            - BranchSide:      'winpr/libwinpr/thread/process.c:302,4'
              BranchSideFuncs:
                - execve
                - CreateProcessHandle
                - free
                - free
                - free
                - free
                - FreeEnvironmentStringsA
                - pthread_sigmask
                - CreateNoneHandle
                - ProcessHandleCloseHandle
                - _exit
                - strlen
                - chdir
        - Branch String:   'winpr/libwinpr/thread/process.c:306,26'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:306,36'
              BranchSideFuncs:
                - strlen
                - execve
                - CreateProcessHandle
                - free
                - free
                - free
                - free
                - FreeEnvironmentStringsA
                - pthread_sigmask
                - CreateNoneHandle
                - ProcessHandleCloseHandle
                - _exit
                - chdir
            - BranchSide:      'winpr/libwinpr/thread/process.c:313,14'
              BranchSideFuncs:
                - execve
                - CreateProcessHandle
                - free
                - free
                - free
                - free
                - FreeEnvironmentStringsA
                - pthread_sigmask
                - CreateNoneHandle
                - ProcessHandleCloseHandle
                - _exit
        - Branch String:   'winpr/libwinpr/thread/process.c:306,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:308,19'
              BranchSideFuncs:
                - chdir
                - execve
                - CreateProcessHandle
                - free
                - free
                - free
                - free
                - FreeEnvironmentStringsA
                - pthread_sigmask
                - CreateNoneHandle
                - ProcessHandleCloseHandle
                - _exit
            - BranchSide:      'winpr/libwinpr/thread/process.c:313,14'
              BranchSideFuncs:
                - execve
                - CreateProcessHandle
                - free
                - free
                - free
                - free
                - FreeEnvironmentStringsA
                - pthread_sigmask
                - CreateNoneHandle
                - ProcessHandleCloseHandle
                - _exit
        - Branch String:   'winpr/libwinpr/thread/process.c:309,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:310,5'
              BranchSideFuncs:
                - free
                - free
                - free
                - free
                - FreeEnvironmentStringsA
                - pthread_sigmask
            - BranchSide:      'winpr/libwinpr/thread/process.c:311,3'
              BranchSideFuncs:
                - execve
                - CreateProcessHandle
                - free
                - free
                - free
                - free
                - FreeEnvironmentStringsA
                - pthread_sigmask
                - CreateNoneHandle
                - ProcessHandleCloseHandle
                - _exit
        - Branch String:   'winpr/libwinpr/thread/process.c:313,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:316,4'
              BranchSideFuncs:
                - _exit
            - BranchSide:      'winpr/libwinpr/thread/process.c:318,2'
              BranchSideFuncs:
                - CreateProcessHandle
                - free
                - free
                - free
                - free
                - FreeEnvironmentStringsA
                - pthread_sigmask
                - CreateNoneHandle
                - ProcessHandleCloseHandle
        - Branch String:   'winpr/libwinpr/thread/process.c:326,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:328,3'
              BranchSideFuncs:
                - CreateNoneHandle
                - ProcessHandleCloseHandle
                - free
                - free
                - free
                - free
                - FreeEnvironmentStringsA
                - pthread_sigmask
            - BranchSide:      'winpr/libwinpr/thread/process.c:331,11'
              BranchSideFuncs:
                - CreateNoneHandle
                - ProcessHandleCloseHandle
                - free
                - free
                - free
                - free
                - FreeEnvironmentStringsA
                - pthread_sigmask
        - Branch String:   'winpr/libwinpr/thread/process.c:333,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:335,28'
              BranchSideFuncs:
                - free
                - free
                - free
                - free
                - FreeEnvironmentStringsA
                - pthread_sigmask
            - BranchSide:      'winpr/libwinpr/thread/process.c:339,35'
              BranchSideFuncs:
                - free
                - free
                - free
                - free
                - FreeEnvironmentStringsA
                - pthread_sigmask
        - Branch String:   'winpr/libwinpr/thread/process.c:347,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:348,3'
              BranchSideFuncs:
                - pthread_sigmask
                - free
                - free
                - free
                - free
                - FreeEnvironmentStringsA
            - BranchSide:      'winpr/libwinpr/thread/process.c:350,7'
              BranchSideFuncs:
                - free
                - free
                - free
                - free
                - FreeEnvironmentStringsA
        - Branch String:   'winpr/libwinpr/thread/process.c:353,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:354,26'
              BranchSideFuncs:
                - FreeEnvironmentStringsA
                - free
                - free
            - BranchSide:      'winpr/libwinpr/thread/process.c:356,6'
              BranchSideFuncs:
                - free
                - free
        - Branch String:   'winpr/libwinpr/thread/process.c:356,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:358,7'
              BranchSideFuncs:
                - free
                - free
            - BranchSide:      'winpr/libwinpr/thread/process.c:369,9'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/thread/process.c:360,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:362,9'
              BranchSideFuncs:
                - free
                - free
            - BranchSide:      'winpr/libwinpr/thread/process.c:366,15'
              BranchSideFuncs:
                - free
      Callsites:
        - Src:             'winpr/libwinpr/thread/process.c:181,11'
          Dst:             CommandLineToArgvA
        - Src:             'winpr/libwinpr/thread/process.c:183,11'
          Dst:             CommandLineToArgvA
        - Src:             'winpr/libwinpr/thread/process.c:192,10'
          Dst:             EnvironmentBlockToEnvpA
        - Src:             'winpr/libwinpr/thread/process.c:196,26'
          Dst:             GetEnvironmentStrings
        - Src:             'winpr/libwinpr/thread/process.c:201,10'
          Dst:             EnvironmentBlockToEnvpA
        - Src:             'winpr/libwinpr/thread/process.c:207,13'
          Dst:             FindApplicationPath
        - Src:             'winpr/libwinpr/thread/process.c:213,2'
          Dst:             sigfillset
        - Src:             'winpr/libwinpr/thread/process.c:214,20'
          Dst:             pthread_sigmask
        - Src:             'winpr/libwinpr/thread/process.c:216,8'
          Dst:             fork
        - Src:             'winpr/libwinpr/thread/process.c:235,3'
          Dst:             sigemptyset
        - Src:             'winpr/libwinpr/thread/process.c:238,4'
          Dst:             sigaction
        - Src:             'winpr/libwinpr/thread/process.c:241,3'
          Dst:             sigfillset
        - Src:             'winpr/libwinpr/thread/process.c:242,3'
          Dst:             pthread_sigmask
        - Src:             'winpr/libwinpr/thread/process.c:247,16'
          Dst:             winpr_Handle_getFd
        - Src:             'winpr/libwinpr/thread/process.c:250,5'
          Dst:             dup2
        - Src:             'winpr/libwinpr/thread/process.c:252,16'
          Dst:             winpr_Handle_getFd
        - Src:             'winpr/libwinpr/thread/process.c:255,5'
          Dst:             dup2
        - Src:             'winpr/libwinpr/thread/process.c:257,16'
          Dst:             winpr_Handle_getFd
        - Src:             'winpr/libwinpr/thread/process.c:260,5'
          Dst:             dup2
        - Src:             'winpr/libwinpr/thread/process.c:270,20'
          Dst:             sysconf
        - Src:             'winpr/libwinpr/thread/process.c:278,4'
          Dst:             close
        - Src:             'winpr/libwinpr/thread/process.c:286,14'
          Dst:             setgid
        - Src:             'winpr/libwinpr/thread/process.c:293,6'
          Dst:             initgroups
        - Src:             'winpr/libwinpr/thread/process.c:299,14'
          Dst:             setuid
        - Src:             'winpr/libwinpr/thread/process.c:306,29'
          Dst:             strlen
        - Src:             'winpr/libwinpr/thread/process.c:308,13'
          Dst:             chdir
        - Src:             'winpr/libwinpr/thread/process.c:313,7'
          Dst:             execve
        - Src:             'winpr/libwinpr/thread/process.c:316,4'
          Dst:             _exit
        - Src:             'winpr/libwinpr/thread/process.c:324,12'
          Dst:             CreateProcessHandle
        - Src:             'winpr/libwinpr/thread/process.c:331,11'
          Dst:             CreateNoneHandle
        - Src:             'winpr/libwinpr/thread/process.c:335,3'
          Dst:             ProcessHandleCloseHandle
        - Src:             'winpr/libwinpr/thread/process.c:348,3'
          Dst:             pthread_sigmask
        - Src:             'winpr/libwinpr/thread/process.c:354,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: 443
      functionLinenumberEnd: 445
      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:         3
      ICount:          45
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/process.c:444,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    CreateProcessWithLogonA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 431
      functionLinenumberEnd: 433
      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:         3
      ICount:          45
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/process.c:432,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    CreateProcessAsUserW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 419
      functionLinenumberEnd: 421
      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:          45
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/process.c:420,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    CreateProcessAsUserA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 402
      functionLinenumberEnd: 405
      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:403,9'
          Dst:             CreateProcessExA
    - functionName:    CreateProcessW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 392
      functionLinenumberEnd: 394
      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:          42
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/process.c:393,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    CreateProcessA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 377
      functionLinenumberEnd: 380
      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:378,9'
          Dst:             CreateProcessExA
    - functionName:    _getprotobyname
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/winsock/winsock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1293
      functionLinenumberEnd: 1295
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - name
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - getprotobyname
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/winsock/winsock.c:1295,9'
          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: 1287
      functionLinenumberEnd: 1289
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - number
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - getprotobynumber
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/winsock/winsock.c:1289,9'
          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: 1281
      functionLinenumberEnd: 1283
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - name
        - proto
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - getservbyname
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/winsock/winsock.c:1283,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: 1273
      functionLinenumberEnd: 1275
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - port
        - proto
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - getservbyport
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/winsock/winsock.c:1275,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: 1266
      functionLinenumberEnd: 1269
      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:1268,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: 1259
      functionLinenumberEnd: 1262
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - name
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - gethostbyname
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/winsock/winsock.c:1261,25'
          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: 1251
      functionLinenumberEnd: 1255
      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:1254,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: 1208
      functionLinenumberEnd: 1235
      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:1213,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:1216,10'
              BranchSideFuncs:
                - shutdown
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:1220,10'
              BranchSideFuncs:
                - shutdown
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:1224,10'
              BranchSideFuncs:
                - shutdown
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:1227,4'
              BranchSideFuncs:
                - shutdown
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:1230,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:1231,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:1233,20'
              BranchSideFuncs:
                - shutdown
      Callsites:
        - Src:             'winpr/libwinpr/winsock/winsock.c:1233,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: 1200
      functionLinenumberEnd: 1204
      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:1203,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: 1192
      functionLinenumberEnd: 1196
      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:1195,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: 1183
      functionLinenumberEnd: 1188
      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:1187,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: 1166
      functionLinenumberEnd: 1179
      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:1177,24'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:1177,28'
              BranchSideFuncs:
                - __errno_location
                - select
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:1177,2'
              BranchSideFuncs:
                - select
                - __errno_location
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:1177,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:1176,19'
              BranchSideFuncs:
                - select
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:1179,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/winsock/winsock.c:1176,12'
          Dst:             select
        - Src:             'winpr/libwinpr/winsock/winsock.c:1177,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: 1155
      functionLinenumberEnd: 1161
      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:1159,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: 1147
      functionLinenumberEnd: 1151
      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:1150,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: 1142
      functionLinenumberEnd: 1143
      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:1143,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: 1136
      functionLinenumberEnd: 1138
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - netlong
      BBCount:         9
      ICount:          35
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - ntohl
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:1137,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:1137,2'
              BranchSideFuncs:
                - ntohl
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:1137,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/winsock/winsock.c:1137,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/winsock/winsock.c:1138,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: 1128
      functionLinenumberEnd: 1132
      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:1131,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: 1122
      functionLinenumberEnd: 1124
      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:1124,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: 1117
      functionLinenumberEnd: 1118
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - cp
      BBCount:         24
      ICount:          93
      EdgeCount:       27
      CyclomaticComplexity: 5
      functionsReached:
        - inet_addr
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:1118,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:1118,9'
              BranchSideFuncs:
                - inet_addr
                - inet_addr
                - winpr_int_assert
                - inet_addr
                - inet_addr
                - inet_addr
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:1118,9'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:1118,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:1118,9'
              BranchSideFuncs:
                - inet_addr
                - inet_addr
                - winpr_int_assert
                - inet_addr
                - inet_addr
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:1118,9'
              BranchSideFuncs:
                - inet_addr
                - winpr_int_assert
                - inet_addr
                - inet_addr
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:1118,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:1118,9'
              BranchSideFuncs:
                - inet_addr
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:1118,9'
              BranchSideFuncs:
                - inet_addr
                - winpr_int_assert
                - inet_addr
                - inet_addr
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:1118,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:1118,9'
              BranchSideFuncs:
                - inet_addr
                - winpr_int_assert
                - inet_addr
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:1118,9'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:1118,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:1118,9'
              BranchSideFuncs:
                - inet_addr
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:1118,9'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/winsock/winsock.c:1118,9'
          Dst:             inet_addr
        - Src:             'winpr/libwinpr/winsock/winsock.c:1118,9'
          Dst:             inet_addr
        - Src:             'winpr/libwinpr/winsock/winsock.c:1118,9'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/winsock/winsock.c:1118,9'
          Dst:             inet_addr
        - Src:             'winpr/libwinpr/winsock/winsock.c:1118,9'
          Dst:             inet_addr
        - Src:             'winpr/libwinpr/winsock/winsock.c:1118,9'
          Dst:             inet_addr
        - Src:             'winpr/libwinpr/winsock/winsock.c:1118,9'
          Dst:             inet_addr
        - Src:             'winpr/libwinpr/winsock/winsock.c:1118,9'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/winsock/winsock.c:1118,9'
          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:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    _htons
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/winsock/winsock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1112
      functionLinenumberEnd: 1113
      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:1113,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: 1106
      functionLinenumberEnd: 1108
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - hostlong
      BBCount:         9
      ICount:          34
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - htonl
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:1107,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:1107,2'
              BranchSideFuncs:
                - htonl
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:1107,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/winsock/winsock.c:1107,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/winsock/winsock.c:1108,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: 1096
      functionLinenumberEnd: 1102
      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:1100,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: 1086
      functionLinenumberEnd: 1092
      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:1090,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: 1076
      functionLinenumberEnd: 1082
      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:1080,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: 1038
      functionLinenumberEnd: 1047
      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:1043,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:1044,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:1046,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/winsock/winsock.c:1041,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: 1030
      functionLinenumberEnd: 1034
      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:1033,11'
          Dst:             close
    - functionName:    _bind
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/winsock/winsock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1018
      functionLinenumberEnd: 1027
      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:1023,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:1024,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:1026,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/winsock/winsock.c:1021,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: 1009
      functionLinenumberEnd: 1014
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - addr
        - addrlen
      BBCount:         24
      ICount:          111
      EdgeCount:       27
      CyclomaticComplexity: 5
      functionsReached:
        - accept
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:1010,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:1010,11'
              BranchSideFuncs:
                - winpr_int_assert
                - accept
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:1010,11'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:1010,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:1010,11'
              BranchSideFuncs:
                - winpr_int_assert
                - accept
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:1010,11'
              BranchSideFuncs:
                - winpr_int_assert
                - accept
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:1010,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:1010,11'
              BranchSideFuncs:
                - accept
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:1010,11'
              BranchSideFuncs:
                - winpr_int_assert
                - accept
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:1010,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:1010,11'
              BranchSideFuncs:
                - winpr_int_assert
                - accept
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:1010,11'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:1010,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:1010,11'
              BranchSideFuncs:
                - accept
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:1010,11'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/winsock/winsock.c:1010,11'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/winsock/winsock.c:1010,11'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/winsock/winsock.c:1012,21'
          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: 798
      functionLinenumberEnd: 1006
      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:818,50'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:819,8'
              BranchSideFuncs:
                - WSASetLastError
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:821,3'
              BranchSideFuncs:
                - WSASetLastError
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:819,21'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:819,25'
              BranchSideFuncs:
                - WSASetLastError
                - ioctl
                - ioctl
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - WSASetLastError
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:821,3'
              BranchSideFuncs:
                - WSASetLastError
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:819,37'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:819,41'
              BranchSideFuncs:
                - WSASetLastError
                - ioctl
                - ioctl
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - WSASetLastError
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:821,3'
              BranchSideFuncs:
                - WSASetLastError
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:818,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:821,3'
              BranchSideFuncs:
                - ioctl
                - ioctl
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - WSASetLastError
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:825,12'
              BranchSideFuncs:
                - ioctl
                - ioctl
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - WSASetLastError
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:922,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:924,3'
              BranchSideFuncs:
                - WSASetLastError
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:928,8'
              BranchSideFuncs:
                - ioctl
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:933,31'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:933,35'
              BranchSideFuncs:
                - ioctl
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:933,2'
              BranchSideFuncs:
                - ioctl
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:933,68'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:933,2'
              BranchSideFuncs:
                - ioctl
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:934,10'
              BranchSideFuncs:
                - ioctl
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:933,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:936,17'
              BranchSideFuncs:
                - ioctl
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:1004,31'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:941,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:942,4'
              BranchSideFuncs:
                - ioctl
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:944,10'
              BranchSideFuncs:
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:946,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:947,11'
              BranchSideFuncs:
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:949,7'
              BranchSideFuncs:
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:949,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:950,11'
              BranchSideFuncs:
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:952,7'
              BranchSideFuncs:
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:952,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:953,11'
              BranchSideFuncs:
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:955,7'
              BranchSideFuncs:
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:955,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:956,11'
              BranchSideFuncs:
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:958,7'
              BranchSideFuncs:
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:958,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:959,11'
              BranchSideFuncs:
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:961,25'
              BranchSideFuncs:
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:963,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:964,4'
              BranchSideFuncs:
                - ioctl
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:966,8'
              BranchSideFuncs:
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - ioctl
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:966,46'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:966,50'
              BranchSideFuncs:
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - ioctl
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:969,16'
              BranchSideFuncs:
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - ioctl
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:966,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:967,4'
              BranchSideFuncs:
                - ioctl
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:969,16'
              BranchSideFuncs:
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - ioctl
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:973,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:974,4'
              BranchSideFuncs:
                - ioctl
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:976,8'
              BranchSideFuncs:
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:976,46'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:976,50'
              BranchSideFuncs:
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:979,16'
              BranchSideFuncs:
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:976,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:977,4'
              BranchSideFuncs:
                - ioctl
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:979,16'
              BranchSideFuncs:
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:983,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:984,4'
              BranchSideFuncs:
                - ioctl
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:986,8'
              BranchSideFuncs:
                - getnameinfo
                - inet_pton
                - ioctl
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:986,46'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:986,50'
              BranchSideFuncs:
                - getnameinfo
                - inet_pton
                - ioctl
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:989,16'
              BranchSideFuncs:
                - getnameinfo
                - inet_pton
                - ioctl
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:986,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:987,4'
              BranchSideFuncs:
                - ioctl
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:989,16'
              BranchSideFuncs:
                - getnameinfo
                - inet_pton
                - ioctl
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
      Callsites:
        - Src:             'winpr/libwinpr/winsock/winsock.c:821,3'
          Dst:             WSASetLastError
        - Src:             'winpr/libwinpr/winsock/winsock.c:922,6'
          Dst:             ioctl
        - Src:             'winpr/libwinpr/winsock/winsock.c:924,3'
          Dst:             WSASetLastError
        - Src:             'winpr/libwinpr/winsock/winsock.c:941,7'
          Dst:             ioctl
        - Src:             'winpr/libwinpr/winsock/winsock.c:963,7'
          Dst:             ioctl
        - Src:             'winpr/libwinpr/winsock/winsock.c:969,3'
          Dst:             getnameinfo
        - Src:             'winpr/libwinpr/winsock/winsock.c:971,3'
          Dst:             inet_pton
        - Src:             'winpr/libwinpr/winsock/winsock.c:973,7'
          Dst:             ioctl
        - Src:             'winpr/libwinpr/winsock/winsock.c:979,3'
          Dst:             getnameinfo
        - Src:             'winpr/libwinpr/winsock/winsock.c:981,3'
          Dst:             inet_pton
        - Src:             'winpr/libwinpr/winsock/winsock.c:983,7'
          Dst:             ioctl
        - Src:             'winpr/libwinpr/winsock/winsock.c:989,3'
          Dst:             getnameinfo
        - Src:             'winpr/libwinpr/winsock/winsock.c:991,3'
          Dst:             inet_pton
    - functionName:    WSASetLastError
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/winsock/winsock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 318
      functionLinenumberEnd: 500
      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:319,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:323,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:327,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:331,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:335,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:339,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:343,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:349,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:353,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:357,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:361,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:365,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:369,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:373,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:377,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:381,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:385,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:389,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:393,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:397,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:401,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:405,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:409,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:413,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:417,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:421,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:425,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:429,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:433,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:437,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:441,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:445,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:449,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:453,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:457,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:461,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:465,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:469,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:473,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:483,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:487,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:491,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:495,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:498,4'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/winsock/winsock.c:323,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:327,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:331,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:335,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:339,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:343,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:349,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:353,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:357,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:361,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:365,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:369,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:373,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:377,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:381,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:385,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:389,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:393,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:397,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:401,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:405,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:409,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:413,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:417,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:421,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:425,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:429,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:433,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:437,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:441,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:445,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:449,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:453,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:457,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:461,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:465,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:469,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:473,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:483,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:487,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:491,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:495,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:    7
      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: 790
      functionLinenumberEnd: 791
      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:791,9'
          Dst:             WSASocketA
    - functionName:    WSASocketA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/winsock/winsock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 782
      functionLinenumberEnd: 785
      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:784,6'
          Dst:             _socket
    - functionName:    _socket
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/winsock/winsock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1238
      functionLinenumberEnd: 1248
      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:1243,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:1244,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:1246,14'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/winsock/winsock.c:1241,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: 775
      functionLinenumberEnd: 776
      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:776,9'
          Dst:             WaitForMultipleObjectsEx
    - functionName:    _ioctlsocket
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/winsock/winsock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1051
      functionLinenumberEnd: 1073
      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:1054,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:1056,7'
              BranchSideFuncs:
                - fcntl64
                - fcntl64
                - fcntl64
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:1072,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:1058,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:1059,4'
              BranchSideFuncs:
                - fcntl64
                - fcntl64
                - fcntl64
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:1061,17'
              BranchSideFuncs:
                - fcntl64
                - fcntl64
                - fcntl64
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:1063,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:1064,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:1066,8'
              BranchSideFuncs:
                - fcntl64
                - fcntl64
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:1066,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:1067,16'
              BranchSideFuncs:
                - fcntl64
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:1069,16'
              BranchSideFuncs:
                - fcntl64
      Callsites:
        - Src:             'winpr/libwinpr/winsock/winsock.c:1061,11'
          Dst:             fcntl64
        - Src:             'winpr/libwinpr/winsock/winsock.c:1067,10'
          Dst:             fcntl64
        - Src:             'winpr/libwinpr/winsock/winsock.c:1069,10'
          Dst:             fcntl64
    - functionName:    WSAEventSelect
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/winsock/winsock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 751
      functionLinenumberEnd: 771
      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:755,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:756,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:758,6'
              BranchSideFuncs:
                - SetEventFileDescriptor
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:758,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:759,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:761,6'
              BranchSideFuncs:
                - SetEventFileDescriptor
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:761,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:762,8'
              BranchSideFuncs:
                - SetEventFileDescriptor
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:764,6'
              BranchSideFuncs:
                - SetEventFileDescriptor
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:764,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:765,8'
              BranchSideFuncs:
                - SetEventFileDescriptor
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:767,29'
              BranchSideFuncs:
                - SetEventFileDescriptor
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:767,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:768,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:770,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/winsock/winsock.c:755,6'
          Dst:             _ioctlsocket
        - Src:             'winpr/libwinpr/winsock/winsock.c:767,6'
          Dst:             SetEventFileDescriptor
    - functionName:    WSACloseEvent
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/winsock/winsock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 741
      functionLinenumberEnd: 747
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - hEvent
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - CloseHandle
        - SetLastError
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:744,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:744,6'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:745,3'
              BranchSideFuncs:
                - SetLastError
      Callsites:
        - Src:             'winpr/libwinpr/winsock/winsock.c:742,16'
          Dst:             CloseHandle
        - Src:             'winpr/libwinpr/winsock/winsock.c:745,3'
          Dst:             SetLastError
    - functionName:    WSAResetEvent
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/winsock/winsock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 734
      functionLinenumberEnd: 737
      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: 729
      functionLinenumberEnd: 730
      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:730,9'
          Dst:             SetEvent
    - functionName:    WSACreateEvent
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/winsock/winsock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 724
      functionLinenumberEnd: 725
      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:725,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:725,9'
              BranchSideFuncs:
                - CreateEventA
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:725,9'
              BranchSideFuncs:
                - CreateEventA
      Callsites:
        - Src:             'winpr/libwinpr/winsock/winsock.c:725,9'
          Dst:             CreateEventA
    - functionName:    WSAGetLastError
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/winsock/winsock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 503
      functionLinenumberEnd: 720
      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:504,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:504,6'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:504,6'
              BranchSideFuncs:
                - __errno_location
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:506,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:510,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:514,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:518,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:522,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:526,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:530,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:536,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:540,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:544,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:548,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:552,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:556,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:560,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:564,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:568,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:572,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:576,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:580,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:584,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:588,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:592,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:596,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:600,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:604,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:608,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:612,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:616,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:620,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:624,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:628,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:632,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:636,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:640,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:644,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:648,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:652,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:656,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:660,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:670,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:674,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:678,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:682,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:694,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:698,4'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/winsock/winsock.c:506,10'
          Dst:             __errno_location
    - functionName:    WSACleanup
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/winsock/winsock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 313
      functionLinenumberEnd: 314
      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: 303
      functionLinenumberEnd: 309
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - short
        - 'N/A'
      constantsTouched: []
      argNames:
        - wVersionRequired
        - lpWSAData
      BBCount:         9
      ICount:          41
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:304,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:304,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:304,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/winsock/winsock.c:304,2'
          Dst:             winpr_int_assert
    - functionName:    ConvertMszUtf8NToWCharAlloc
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/unicode.c'
      linkageType:     InternalLinkage
      functionLinenumber: 629
      functionLinenumberEnd: 649
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - str
        - len
        - pSize
      BBCount:         22
      ICount:          116
      EdgeCount:       27
      CyclomaticComplexity: 7
      functionsReached:
        - ConvertMszUtf8NToWChar
        - calloc
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/unicode.c:632,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:633,4'
              BranchSideFuncs:
                - calloc
                - ConvertMszUtf8NToWChar
                - winpr_int_assert
                - free
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:634,6'
              BranchSideFuncs:
                - calloc
                - ConvertMszUtf8NToWChar
                - winpr_int_assert
                - free
        - Branch String:   'winpr/libwinpr/crt/unicode.c:634,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:635,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:636,23'
              BranchSideFuncs:
                - calloc
                - ConvertMszUtf8NToWChar
                - winpr_int_assert
                - free
        - Branch String:   'winpr/libwinpr/crt/unicode.c:637,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:638,3'
              BranchSideFuncs:
                - ConvertMszUtf8NToWChar
                - winpr_int_assert
                - free
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:639,45'
              BranchSideFuncs:
                - ConvertMszUtf8NToWChar
                - winpr_int_assert
                - free
        - Branch String:   'winpr/libwinpr/crt/unicode.c:640,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:642,8'
              BranchSideFuncs:
                - free
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:645,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/crt/unicode.c:645,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:645,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:645,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/crt/unicode.c:646,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:647,20'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:648,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/crt/unicode.c:631,21'
          Dst:             ConvertMszUtf8NToWChar
        - Src:             'winpr/libwinpr/crt/unicode.c:636,8'
          Dst:             calloc
        - Src:             'winpr/libwinpr/crt/unicode.c:639,22'
          Dst:             ConvertMszUtf8NToWChar
        - Src:             'winpr/libwinpr/crt/unicode.c:645,2'
          Dst:             winpr_int_assert
    - functionName:    ConvertMszUtf8NToWChar
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/unicode.c'
      linkageType:     InternalLinkage
      functionLinenumber: 491
      functionLinenumberEnd: 509
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - str
        - len
        - wstr
        - wlen
      BBCount:         25
      ICount:          114
      EdgeCount:       31
      CyclomaticComplexity: 8
      functionsReached:
        - MultiByteToWideChar
        - SetLastError
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/unicode.c:492,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:493,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:495,2'
              BranchSideFuncs:
                - winpr_int_assert
                - MultiByteToWideChar
                - SetLastError
        - Branch String:   'winpr/libwinpr/crt/unicode.c:495,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:495,2'
              BranchSideFuncs:
                - MultiByteToWideChar
                - SetLastError
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:495,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/crt/unicode.c:497,24'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:497,28'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:499,3'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/crt/unicode.c:497,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:499,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:503,25'
              BranchSideFuncs:
                - MultiByteToWideChar
        - Branch String:   'winpr/libwinpr/crt/unicode.c:505,16'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:505,21'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:506,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode.c:505,31'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:505,35'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:508,9'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode.c:505,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:506,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:508,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/crt/unicode.c:495,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/crt/unicode.c:499,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/crt/unicode.c:504,17'
          Dst:             MultiByteToWideChar
    - functionName:    MultiByteToWideChar
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/unicode.c'
      linkageType:     InternalLinkage
      functionLinenumber: 155
      functionLinenumberEnd: 157
      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:156,9'
          Dst:             int_MultiByteToWideChar
    - functionName:    ConvertUtf8NToWCharAlloc
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/unicode.c'
      linkageType:     InternalLinkage
      functionLinenumber: 606
      functionLinenumberEnd: 626
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - str
        - len
        - pSize
      BBCount:         22
      ICount:          116
      EdgeCount:       27
      CyclomaticComplexity: 7
      functionsReached:
        - ConvertUtf8NToWChar
        - calloc
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/unicode.c:609,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:610,4'
              BranchSideFuncs:
                - calloc
                - ConvertUtf8NToWChar
                - winpr_int_assert
                - free
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:611,6'
              BranchSideFuncs:
                - calloc
                - ConvertUtf8NToWChar
                - winpr_int_assert
                - free
        - Branch String:   'winpr/libwinpr/crt/unicode.c:611,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:612,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:613,23'
              BranchSideFuncs:
                - calloc
                - ConvertUtf8NToWChar
                - winpr_int_assert
                - free
        - Branch String:   'winpr/libwinpr/crt/unicode.c:614,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:615,3'
              BranchSideFuncs:
                - ConvertUtf8NToWChar
                - winpr_int_assert
                - free
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:616,42'
              BranchSideFuncs:
                - ConvertUtf8NToWChar
                - winpr_int_assert
                - free
        - Branch String:   'winpr/libwinpr/crt/unicode.c:617,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:619,8'
              BranchSideFuncs:
                - free
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:622,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/crt/unicode.c:622,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:622,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:622,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/crt/unicode.c:623,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:624,20'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:625,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/crt/unicode.c:608,21'
          Dst:             ConvertUtf8NToWChar
        - Src:             'winpr/libwinpr/crt/unicode.c:613,8'
          Dst:             calloc
        - Src:             'winpr/libwinpr/crt/unicode.c:616,22'
          Dst:             ConvertUtf8NToWChar
        - Src:             'winpr/libwinpr/crt/unicode.c:622,2'
          Dst:             winpr_int_assert
    - functionName:    ConvertUtf8NToWChar
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/unicode.c'
      linkageType:     InternalLinkage
      functionLinenumber: 453
      functionLinenumberEnd: 488
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - str
        - len
        - wstr
        - wlen
      BBCount:         44
      ICount:          216
      EdgeCount:       57
      CyclomaticComplexity: 15
      functionsReached:
        - MultiByteToWideChar
        - SetLastError
        - strnlen
        - winpr_int_assert
      functionUses:    8
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/unicode.c:456,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:457,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:459,2'
              BranchSideFuncs:
                - winpr_int_assert
                - MultiByteToWideChar
                - SetLastError
        - Branch String:   'winpr/libwinpr/crt/unicode.c:459,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:459,2'
              BranchSideFuncs:
                - MultiByteToWideChar
                - SetLastError
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:459,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/crt/unicode.c:461,24'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:461,28'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:463,3'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/crt/unicode.c:461,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:463,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:466,6'
              BranchSideFuncs:
                - MultiByteToWideChar
        - Branch String:   'winpr/libwinpr/crt/unicode.c:466,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:468,20'
              BranchSideFuncs:
                - MultiByteToWideChar
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:472,25'
              BranchSideFuncs:
                - MultiByteToWideChar
        - Branch String:   'winpr/libwinpr/crt/unicode.c:474,16'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:474,21'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:475,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode.c:474,31'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:474,35'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:476,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode.c:474,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:475,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:476,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode.c:476,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:478,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:482,11'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode.c:478,12'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:478,16'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:480,10'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode.c:478,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:479,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:480,10'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode.c:484,12'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:484,16'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:486,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode.c:484,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:485,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:486,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/crt/unicode.c:454,16'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/crt/unicode.c:459,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/crt/unicode.c:463,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/crt/unicode.c:473,17'
          Dst:             MultiByteToWideChar
    - functionName:    ConvertUtf8ToWCharAlloc
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/unicode.c'
      linkageType:     InternalLinkage
      functionLinenumber: 583
      functionLinenumberEnd: 603
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - str
        - pSize
      BBCount:         22
      ICount:          111
      EdgeCount:       27
      CyclomaticComplexity: 7
      functionsReached:
        - ConvertUtf8ToWChar
        - calloc
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/unicode.c:586,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:587,4'
              BranchSideFuncs:
                - calloc
                - ConvertUtf8ToWChar
                - winpr_int_assert
                - free
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:588,6'
              BranchSideFuncs:
                - calloc
                - ConvertUtf8ToWChar
                - winpr_int_assert
                - free
        - Branch String:   'winpr/libwinpr/crt/unicode.c:588,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:589,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:590,23'
              BranchSideFuncs:
                - calloc
                - ConvertUtf8ToWChar
                - winpr_int_assert
                - free
        - Branch String:   'winpr/libwinpr/crt/unicode.c:591,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:592,3'
              BranchSideFuncs:
                - ConvertUtf8ToWChar
                - winpr_int_assert
                - free
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:593,41'
              BranchSideFuncs:
                - ConvertUtf8ToWChar
                - winpr_int_assert
                - free
        - Branch String:   'winpr/libwinpr/crt/unicode.c:594,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:596,8'
              BranchSideFuncs:
                - free
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:599,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/crt/unicode.c:599,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:599,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:599,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/crt/unicode.c:600,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:601,20'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:602,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/crt/unicode.c:585,21'
          Dst:             ConvertUtf8ToWChar
        - Src:             'winpr/libwinpr/crt/unicode.c:590,8'
          Dst:             calloc
        - Src:             'winpr/libwinpr/crt/unicode.c:593,22'
          Dst:             ConvertUtf8ToWChar
        - Src:             'winpr/libwinpr/crt/unicode.c:599,2'
          Dst:             winpr_int_assert
    - functionName:    ConvertUtf8ToWChar
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/unicode.c'
      linkageType:     InternalLinkage
      functionLinenumber: 440
      functionLinenumberEnd: 450
      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:441,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:443,7'
              BranchSideFuncs:
                - strlen
                - ConvertUtf8NToWChar
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:448,28'
              BranchSideFuncs:
                - strlen
                - ConvertUtf8NToWChar
        - Branch String:   'winpr/libwinpr/crt/unicode.c:443,12'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:443,15'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:445,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode.c:443,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:444,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:445,3'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/crt/unicode.c:448,21'
          Dst:             strlen
        - Src:             'winpr/libwinpr/crt/unicode.c:449,9'
          Dst:             ConvertUtf8NToWChar
    - functionName:    ConvertMszWCharNToUtf8Alloc
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/unicode.c'
      linkageType:     InternalLinkage
      functionLinenumber: 559
      functionLinenumberEnd: 580
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - wstr
        - wlen
        - pUtfCharLength
      BBCount:         22
      ICount:          116
      EdgeCount:       27
      CyclomaticComplexity: 7
      functionsReached:
        - ConvertMszWCharNToUtf8
        - calloc
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/unicode.c:563,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:564,4'
              BranchSideFuncs:
                - calloc
                - ConvertMszWCharNToUtf8
                - winpr_int_assert
                - free
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:565,6'
              BranchSideFuncs:
                - calloc
                - ConvertMszWCharNToUtf8
                - winpr_int_assert
                - free
        - Branch String:   'winpr/libwinpr/crt/unicode.c:565,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:566,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:567,23'
              BranchSideFuncs:
                - calloc
                - ConvertMszWCharNToUtf8
                - winpr_int_assert
                - free
        - Branch String:   'winpr/libwinpr/crt/unicode.c:568,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:569,3'
              BranchSideFuncs:
                - ConvertMszWCharNToUtf8
                - winpr_int_assert
                - free
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:570,45'
              BranchSideFuncs:
                - ConvertMszWCharNToUtf8
                - winpr_int_assert
                - free
        - Branch String:   'winpr/libwinpr/crt/unicode.c:571,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:573,8'
              BranchSideFuncs:
                - free
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:576,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/crt/unicode.c:576,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:576,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:576,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/crt/unicode.c:577,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:578,29'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:579,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/crt/unicode.c:561,21'
          Dst:             ConvertMszWCharNToUtf8
        - Src:             'winpr/libwinpr/crt/unicode.c:567,8'
          Dst:             calloc
        - Src:             'winpr/libwinpr/crt/unicode.c:570,22'
          Dst:             ConvertMszWCharNToUtf8
        - Src:             'winpr/libwinpr/crt/unicode.c:576,2'
          Dst:             winpr_int_assert
    - functionName:    ConvertMszWCharNToUtf8
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/unicode.c'
      linkageType:     InternalLinkage
      functionLinenumber: 419
      functionLinenumberEnd: 437
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - wstr
        - wlen
        - str
        - len
      BBCount:         25
      ICount:          114
      EdgeCount:       31
      CyclomaticComplexity: 8
      functionsReached:
        - SetLastError
        - WideCharToMultiByte
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/unicode.c:420,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:421,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:423,2'
              BranchSideFuncs:
                - winpr_int_assert
                - WideCharToMultiByte
                - SetLastError
        - Branch String:   'winpr/libwinpr/crt/unicode.c:423,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:423,2'
              BranchSideFuncs:
                - WideCharToMultiByte
                - SetLastError
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:423,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/crt/unicode.c:425,24'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:425,28'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:427,3'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/crt/unicode.c:425,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:427,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:431,25'
              BranchSideFuncs:
                - WideCharToMultiByte
        - Branch String:   'winpr/libwinpr/crt/unicode.c:433,16'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:433,21'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:434,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode.c:433,30'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:433,34'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:436,9'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode.c:433,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:434,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:436,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/crt/unicode.c:423,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/crt/unicode.c:427,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/crt/unicode.c:432,17'
          Dst:             WideCharToMultiByte
    - functionName:    WideCharToMultiByte
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/unicode.c'
      linkageType:     InternalLinkage
      functionLinenumber: 206
      functionLinenumberEnd: 208
      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:207,9'
          Dst:             int_WideCharToMultiByte
    - functionName:    ConvertWCharNToUtf8Alloc
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/unicode.c'
      linkageType:     InternalLinkage
      functionLinenumber: 535
      functionLinenumberEnd: 556
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - wstr
        - wlen
        - pUtfCharLength
      BBCount:         22
      ICount:          116
      EdgeCount:       27
      CyclomaticComplexity: 7
      functionsReached:
        - ConvertWCharNToUtf8
        - calloc
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/unicode.c:539,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:540,4'
              BranchSideFuncs:
                - calloc
                - ConvertWCharNToUtf8
                - winpr_int_assert
                - free
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:541,6'
              BranchSideFuncs:
                - calloc
                - ConvertWCharNToUtf8
                - winpr_int_assert
                - free
        - Branch String:   'winpr/libwinpr/crt/unicode.c:541,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:542,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:543,23'
              BranchSideFuncs:
                - calloc
                - ConvertWCharNToUtf8
                - winpr_int_assert
                - free
        - Branch String:   'winpr/libwinpr/crt/unicode.c:544,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:545,3'
              BranchSideFuncs:
                - ConvertWCharNToUtf8
                - winpr_int_assert
                - free
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:546,42'
              BranchSideFuncs:
                - ConvertWCharNToUtf8
                - winpr_int_assert
                - free
        - Branch String:   'winpr/libwinpr/crt/unicode.c:547,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:549,8'
              BranchSideFuncs:
                - free
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:552,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/crt/unicode.c:552,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:552,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:552,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/crt/unicode.c:553,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:554,29'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:555,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/crt/unicode.c:537,21'
          Dst:             ConvertWCharNToUtf8
        - Src:             'winpr/libwinpr/crt/unicode.c:543,8'
          Dst:             calloc
        - Src:             'winpr/libwinpr/crt/unicode.c:546,22'
          Dst:             ConvertWCharNToUtf8
        - Src:             'winpr/libwinpr/crt/unicode.c:552,2'
          Dst:             winpr_int_assert
    - functionName:    ConvertWCharNToUtf8
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/unicode.c'
      linkageType:     InternalLinkage
      functionLinenumber: 382
      functionLinenumberEnd: 416
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - wstr
        - wlen
        - str
        - len
      BBCount:         45
      ICount:          216
      EdgeCount:       58
      CyclomaticComplexity: 15
      functionsReached:
        - SetLastError
        - WideCharToMultiByte
        - _wcsnlen
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/unicode.c:384,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:385,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:387,2'
              BranchSideFuncs:
                - winpr_int_assert
                - _wcsnlen
                - WideCharToMultiByte
                - SetLastError
        - Branch String:   'winpr/libwinpr/crt/unicode.c:387,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:387,2'
              BranchSideFuncs:
                - _wcsnlen
                - WideCharToMultiByte
                - SetLastError
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:387,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/crt/unicode.c:390,24'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:390,28'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:392,3'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/crt/unicode.c:390,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:392,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:396,6'
              BranchSideFuncs:
                - WideCharToMultiByte
        - Branch String:   'winpr/libwinpr/crt/unicode.c:396,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:398,20'
              BranchSideFuncs:
                - WideCharToMultiByte
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:401,49'
              BranchSideFuncs:
                - WideCharToMultiByte
        - Branch String:   'winpr/libwinpr/crt/unicode.c:402,16'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:402,21'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:403,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode.c:402,30'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:402,42'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:404,12'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode.c:402,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:403,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:404,12'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode.c:404,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:406,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:410,19'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode.c:406,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:406,23'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:408,10'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode.c:406,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:407,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:408,10'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode.c:412,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:412,15'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:414,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode.c:412,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:413,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:414,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/crt/unicode.c:387,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/crt/unicode.c:388,17'
          Dst:             _wcsnlen
        - Src:             'winpr/libwinpr/crt/unicode.c:392,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/crt/unicode.c:401,17'
          Dst:             WideCharToMultiByte
    - functionName:    ConvertWCharToUtf8Alloc
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/unicode.c'
      linkageType:     InternalLinkage
      functionLinenumber: 512
      functionLinenumberEnd: 532
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - wstr
        - pUtfCharLength
      BBCount:         22
      ICount:          111
      EdgeCount:       27
      CyclomaticComplexity: 7
      functionsReached:
        - ConvertWCharToUtf8
        - calloc
        - winpr_int_assert
      functionUses:    16
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/unicode.c:515,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:516,4'
              BranchSideFuncs:
                - calloc
                - ConvertWCharToUtf8
                - winpr_int_assert
                - free
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:517,6'
              BranchSideFuncs:
                - calloc
                - ConvertWCharToUtf8
                - winpr_int_assert
                - free
        - Branch String:   'winpr/libwinpr/crt/unicode.c:517,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:518,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:519,23'
              BranchSideFuncs:
                - calloc
                - ConvertWCharToUtf8
                - winpr_int_assert
                - free
        - Branch String:   'winpr/libwinpr/crt/unicode.c:520,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:521,3'
              BranchSideFuncs:
                - ConvertWCharToUtf8
                - winpr_int_assert
                - free
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:522,41'
              BranchSideFuncs:
                - ConvertWCharToUtf8
                - winpr_int_assert
                - free
        - Branch String:   'winpr/libwinpr/crt/unicode.c:523,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:525,8'
              BranchSideFuncs:
                - free
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:528,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/crt/unicode.c:528,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:528,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:528,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/crt/unicode.c:529,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:530,29'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:531,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/crt/unicode.c:514,21'
          Dst:             ConvertWCharToUtf8
        - Src:             'winpr/libwinpr/crt/unicode.c:519,8'
          Dst:             calloc
        - Src:             'winpr/libwinpr/crt/unicode.c:522,22'
          Dst:             ConvertWCharToUtf8
        - Src:             'winpr/libwinpr/crt/unicode.c:528,2'
          Dst:             winpr_int_assert
    - functionName:    ConvertWCharToUtf8
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/unicode.c'
      linkageType:     InternalLinkage
      functionLinenumber: 369
      functionLinenumberEnd: 379
      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:370,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:372,7'
              BranchSideFuncs:
                - _wcslen
                - ConvertWCharNToUtf8
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:377,30'
              BranchSideFuncs:
                - _wcslen
                - ConvertWCharNToUtf8
        - Branch String:   'winpr/libwinpr/crt/unicode.c:372,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:372,14'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:374,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode.c:372,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:373,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:374,3'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/crt/unicode.c:377,22'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/crt/unicode.c:378,9'
          Dst:             ConvertWCharNToUtf8
    - functionName:    _byteswap_ushort
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/crt.h'
      linkageType:     InternalLinkage
      functionLinenumber: 111
      functionLinenumberEnd: 112
      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: 360
      functionLinenumberEnd: 365
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - wstr
        - length
      BBCount:         16
      ICount:          71
      EdgeCount:       18
      CyclomaticComplexity: 4
      functionsReached:
        - _byteswap_ushort
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/unicode.c:361,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:361,2'
              BranchSideFuncs:
                - _byteswap_ushort
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:361,2'
              BranchSideFuncs:
                - winpr_int_assert
                - _byteswap_ushort
        - Branch String:   'winpr/libwinpr/crt/unicode.c:361,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:361,2'
              BranchSideFuncs:
                - _byteswap_ushort
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:361,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/crt/unicode.c:363,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:364,30'
              BranchSideFuncs:
                - _byteswap_ushort
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:365,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/crt/unicode.c:361,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/crt/unicode.c:364,13'
          Dst:             _byteswap_ushort
    - functionName:    hex2bin
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 92
      functionLinenumberEnd: 99
      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:93,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:94,8'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:95,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:95,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:96,8'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:98,8'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    wcsndup
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 834
      functionLinenumberEnd: 843
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - s
        - n
      BBCount:         8
      ICount:          52
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - calloc
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/string.c:835,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:836,3'
              BranchSideFuncs:
                - calloc
            - BranchSide:      'winpr/libwinpr/crt/string.c:838,23'
              BranchSideFuncs:
                - calloc
        - Branch String:   'winpr/libwinpr/crt/string.c:839,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:840,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:841,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/crt/string.c:838,16'
          Dst:             calloc
    - functionName:    InitializeConstWCharFromUtf8
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 826
      functionLinenumberEnd: 830
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - str
        - buffer
        - len
      BBCount:         18
      ICount:          64
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - ConvertUtf8ToWChar
        - winpr_int_assert
      functionUses:    7
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/string.c:827,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:827,2'
              BranchSideFuncs:
                - winpr_int_assert
                - ConvertUtf8ToWChar
            - BranchSide:      'winpr/libwinpr/crt/string.c:827,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/crt/string.c:828,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:828,2'
              BranchSideFuncs:
                - ConvertUtf8ToWChar
            - BranchSide:      'winpr/libwinpr/crt/string.c:828,2'
              BranchSideFuncs:
                - winpr_int_assert
                - ConvertUtf8ToWChar
        - Branch String:   'winpr/libwinpr/crt/string.c:828,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:828,2'
              BranchSideFuncs:
                - ConvertUtf8ToWChar
            - BranchSide:      'winpr/libwinpr/crt/string.c:828,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/crt/string.c:827,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/crt/string.c:828,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/crt/string.c:829,8'
          Dst:             ConvertUtf8ToWChar
    - functionName:    GetLine
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 772
      functionLinenumberEnd: 809
      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:809,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: 755
      functionLinenumberEnd: 768
      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:758,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:758,32'
              BranchSideFuncs:
                - strpbrk
            - BranchSide:      'winpr/libwinpr/crt/string.c:758,4'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:760,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:761,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:764,4'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/crt/string.c:758,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: 700
      functionLinenumberEnd: 752
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - str
        - size
      BBCount:         45
      ICount:          243
      EdgeCount:       50
      CyclomaticComplexity: 7
      functionsReached:
        - calloc
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/string.c:701,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:701,2'
              BranchSideFuncs:
                - winpr_int_assert
                - calloc
            - BranchSide:      'winpr/libwinpr/crt/string.c:701,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/crt/string.c:703,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:703,2'
              BranchSideFuncs:
                - calloc
            - BranchSide:      'winpr/libwinpr/crt/string.c:703,2'
              BranchSideFuncs:
                - winpr_int_assert
                - calloc
        - Branch String:   'winpr/libwinpr/crt/string.c:703,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:703,2'
              BranchSideFuncs:
                - calloc
            - BranchSide:      'winpr/libwinpr/crt/string.c:703,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/crt/string.c:706,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:707,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:709,9'
              BranchSideFuncs:
                - calloc
        - Branch String:   'winpr/libwinpr/crt/string.c:710,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:712,12'
              BranchSideFuncs:
                - calloc
            - BranchSide:      'winpr/libwinpr/crt/string.c:723,21'
              BranchSideFuncs:
                - calloc
        - Branch String:   'winpr/libwinpr/crt/string.c:713,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:717,15'
              BranchSideFuncs:
                - calloc
            - BranchSide:      'winpr/libwinpr/crt/string.c:717,15'
              BranchSideFuncs:
                - calloc
            - BranchSide:      'winpr/libwinpr/crt/string.c:720,5'
              BranchSideFuncs:
                - calloc
        - Branch String:   'winpr/libwinpr/crt/string.c:724,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:725,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:727,9'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:728,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:730,18'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:750,10'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:731,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:734,5'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:739,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:746,18'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:739,17'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:739,21'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:744,5'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:739,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:741,6'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:744,5'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/crt/string.c:701,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/crt/string.c:703,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/crt/string.c:723,14'
          Dst:             calloc
    - functionName:    ConvertLineEndingToLF
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 677
      functionLinenumberEnd: 696
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - str
        - size
      BBCount:         24
      ICount:          127
      EdgeCount:       27
      CyclomaticComplexity: 5
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/string.c:680,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:680,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:680,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/crt/string.c:680,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:680,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:680,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/crt/string.c:681,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:683,12'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:696,9'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:684,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:687,5'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:692,21'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:688,24'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:688,28'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:690,5'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:688,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:689,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:690,5'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/crt/string.c:680,2'
          Dst:             winpr_int_assert
    - functionName:    IsCharLowerW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 667
      functionLinenumberEnd: 672
      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:668,19'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:668,23'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:671,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:668,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:669,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:671,3'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    IsCharLowerA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 659
      functionLinenumberEnd: 664
      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:660,18'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:660,22'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:663,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:660,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:661,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:663,3'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    IsCharUpperW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 651
      functionLinenumberEnd: 656
      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:652,19'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:652,23'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:655,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:652,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:653,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:655,3'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    IsCharUpperA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 643
      functionLinenumberEnd: 648
      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:644,18'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:644,22'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:647,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:644,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:645,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:647,3'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    IsCharAlphaNumericW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 634
      functionLinenumberEnd: 640
      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:635,20'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:635,24'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:635,42'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:635,37'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:635,42'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:637,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:635,54'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:635,58'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:636,8'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:635,71'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:636,8'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:637,3'
              BranchSideFuncs: []
        - 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:639,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:635,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:637,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:639,3'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    IsCharAlphaNumericA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 625
      functionLinenumberEnd: 631
      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:626,19'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:626,23'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:626,40'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:626,35'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:626,40'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:628,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:626,51'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:626,55'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:627,8'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:626,67'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:627,8'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:628,3'
              BranchSideFuncs: []
        - 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:630,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:626,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:628,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:630,3'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    IsCharAlphaW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 617
      functionLinenumberEnd: 622
      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:618,20'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:618,24'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:618,42'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:618,37'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:618,42'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:619,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:618,54'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:618,58'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:621,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:618,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:619,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:621,3'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    IsCharAlphaA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 609
      functionLinenumberEnd: 614
      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:610,19'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:610,23'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:610,40'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:610,35'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:610,40'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:611,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:610,51'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:610,55'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:613,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:610,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:611,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:613,3'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    CharLowerBuffA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 583
      functionLinenumberEnd: 594
      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:584,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:585,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:587,13'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:587,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:589,8'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:593,9'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:589,24'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:589,28'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:591,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:589,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:590,21'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:591,2'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    CharLowerBuffW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 597
      functionLinenumberEnd: 605
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - lpsz
        - cchLength
      BBCount:         7
      ICount:          72
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_Data_Get_UINT16
        - winpr_Data_Write_UINT16
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/string.c:598,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:600,40'
              BranchSideFuncs:
                - winpr_Data_Get_UINT16.1779
                - winpr_Data_Write_UINT16.1780
            - BranchSide:      'winpr/libwinpr/crt/string.c:605,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/crt/string.c:600,17'
          Dst:             winpr_Data_Get_UINT16
        - Src:             'winpr/libwinpr/crt/string.c:602,3'
          Dst:             winpr_Data_Write_UINT16
    - functionName:    winpr_Data_Get_UINT16
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/endian.h'
      linkageType:     InternalLinkage
      functionLinenumber: 59
      functionLinenumberEnd: 69
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - d
      BBCount:         13
      ICount:          73
      EdgeCount:       14
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/endian.h:60,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/endian.h:60,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/endian.h:60,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/endian.h:64,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/endian.h:66,6'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/endian.h:69,10'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/include/winpr/endian.h:60,3'
          Dst:             winpr_int_assert
    - functionName:    winpr_Data_Write_UINT16
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/endian.h'
      linkageType:     InternalLinkage
      functionLinenumber: 235
      functionLinenumberEnd: 240
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - d
        - v
      BBCount:         9
      ICount:          51
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/endian.h:236,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/endian.h:236,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/endian.h:236,3'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/include/winpr/endian.h:236,3'
          Dst:             winpr_int_assert
    - functionName:    CharLowerW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 574
      functionLinenumberEnd: 580
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpsz
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - CharLowerBuffW
        - _wcsnlen
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/string.c:576,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:577,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:578,17'
              BranchSideFuncs:
                - CharLowerBuffW
      Callsites:
        - Src:             'winpr/libwinpr/crt/string.c:575,21'
          Dst:             _wcsnlen
        - Src:             'winpr/libwinpr/crt/string.c:578,2'
          Dst:             CharLowerBuffW
    - 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:         16
      ICount:          68
      EdgeCount:       18
      CyclomaticComplexity: 4
      functionsReached:
        - winpr_int_assert
      functionUses:    5
      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:326,2'
              BranchSideFuncs:
                - winpr_int_assert
        - 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:             winpr_int_assert
    - functionName:    CharLowerA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 542
      functionLinenumberEnd: 571
      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:545,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:546,3'
              BranchSideFuncs:
                - strlen
            - BranchSide:      'winpr/libwinpr/crt/string.c:548,18'
              BranchSideFuncs:
                - strlen
        - Branch String:   'winpr/libwinpr/crt/string.c:550,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:551,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:553,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:553,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:555,13'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:564,14'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:557,18'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:557,22'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:560,11'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:557,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:558,15'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:560,11'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:564,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:566,8'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:570,9'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:566,24'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:566,28'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:568,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:566,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:567,21'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:568,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/crt/string.c:548,11'
          Dst:             strlen
    - functionName:    CharUpperBuffW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 530
      functionLinenumberEnd: 538
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - lpsz
        - cchLength
      BBCount:         7
      ICount:          72
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_Data_Get_UINT16
        - winpr_Data_Write_UINT16
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/string.c:531,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:533,40'
              BranchSideFuncs:
                - winpr_Data_Get_UINT16.1779
                - winpr_Data_Write_UINT16.1780
            - BranchSide:      'winpr/libwinpr/crt/string.c:538,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/crt/string.c:533,17'
          Dst:             winpr_Data_Get_UINT16
        - Src:             'winpr/libwinpr/crt/string.c:535,3'
          Dst:             winpr_Data_Write_UINT16
    - 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,21'
              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:    _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:         12
      ICount:          51
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_int_assert
      functionUses:    48
      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:314,2'
              BranchSideFuncs:
                - winpr_int_assert
        - 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:             winpr_int_assert
    - 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,15'
              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,21'
              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
        - c
      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,23'
              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:         23
      ICount:          105
      EdgeCount:       26
      CyclomaticComplexity: 5
      functionsReached:
        - _wcslen
        - _wcsncmp
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/string.c:342,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:342,2'
              BranchSideFuncs:
                - winpr_int_assert
                - _wcslen
                - _wcsncmp
            - BranchSide:      'winpr/libwinpr/crt/string.c:342,2'
              BranchSideFuncs:
                - winpr_int_assert
        - 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:343,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/crt/string.c:345,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:346,10'
              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,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:353,6'
              BranchSideFuncs:
                - _wcsncmp
      Callsites:
        - Src:             'winpr/libwinpr/crt/string.c:342,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/crt/string.c:343,2'
          Dst:             winpr_int_assert
        - 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:         28
      ICount:          125
      EdgeCount:       32
      CyclomaticComplexity: 6
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/string.c:292,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:292,2'
              BranchSideFuncs:
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/crt/string.c:292,2'
              BranchSideFuncs:
                - winpr_int_assert
        - 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:293,2'
              BranchSideFuncs:
                - winpr_int_assert
        - 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:             winpr_int_assert
        - Src:             'winpr/libwinpr/crt/string.c:293,2'
          Dst:             winpr_int_assert
    - 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:         25
      ICount:          105
      EdgeCount:       28
      CyclomaticComplexity: 5
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/string.c:275,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:275,2'
              BranchSideFuncs:
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/crt/string.c:275,2'
              BranchSideFuncs:
                - winpr_int_assert
        - 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:276,2'
              BranchSideFuncs:
                - winpr_int_assert
        - 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:             winpr_int_assert
        - Src:             'winpr/libwinpr/crt/string.c:276,2'
          Dst:             winpr_int_assert
    - 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:    _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:         22
      ICount:          104
      EdgeCount:       24
      CyclomaticComplexity: 4
      functionsReached:
        - _wcslen
        - _wcsnlen
        - winpr_int_assert
      functionUses:    39
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/string.c:250,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:250,2'
              BranchSideFuncs:
                - winpr_int_assert
                - _wcslen
                - _wcsnlen
            - BranchSide:      'winpr/libwinpr/crt/string.c:250,2'
              BranchSideFuncs:
                - winpr_int_assert
        - 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:
                - winpr_int_assert
                - _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:
                - winpr_int_assert
        - 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:             winpr_int_assert
        - Src:             'winpr/libwinpr/crt/string.c:251,2'
          Dst:             winpr_int_assert
        - 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:         12
      ICount:          66
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
        - _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_Print_dbg_tag.1801
            - BranchSide:      'winpr/libwinpr/crt/string.c:236,23'
              BranchSideFuncs:
                - _wcslen
                - calloc
                - WLog_Print_dbg_tag.1801
        - Branch String:   'winpr/libwinpr/crt/string.c:239,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:240,10'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.1801
            - BranchSide:      'winpr/libwinpr/crt/string.c:242,6'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.1801
        - Branch String:   'winpr/libwinpr/crt/string.c:242,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:243,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.1801
            - BranchSide:      'winpr/libwinpr/crt/string.c:245,9'
              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_Print_dbg_tag
    - functionName:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 216
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - tag
        - log_level
        - line
        - file
        - fkt
      BBCount:         9
      ICount:          67
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintMessageVA
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/wlog.h:206,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/wlog.h:207,30'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessageVA
            - BranchSide:      'winpr/include/winpr/wlog.h:209,26'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessageVA
        - Branch String:   'winpr/include/winpr/wlog.h:209,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/wlog.h:209,7'
              BranchSideFuncs:
                - WLog_PrintMessageVA
            - BranchSide:      'winpr/include/winpr/wlog.h:212,4'
              BranchSideFuncs:
                - WLog_PrintMessageVA
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:207,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:209,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:213,4'
          Dst:             WLog_PrintMessageVA
    - 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:         9
      ICount:          44
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
        - 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_Print_dbg_tag.1801
        - Branch String:   'winpr/libwinpr/crt/string.c:225,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:226,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.1801
            - BranchSide:      'winpr/libwinpr/crt/string.c:228,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/crt/string.c:223,25'
          Dst:             strdup
        - Src:             'winpr/libwinpr/crt/string.c:226,3'
          Dst:             WLog_Print_dbg_tag
    - 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: 186
      functionLinenumberEnd: 214
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - slen
        - templ
        - oap
      BBCount:         10
      ICount:          108
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - calloc
        - vsnprintf
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/string.c:195,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:196,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:198,29'
              BranchSideFuncs:
                - calloc
                - vsnprintf
                - free
        - Branch String:   'winpr/libwinpr/crt/string.c:199,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:200,3'
              BranchSideFuncs:
                - vsnprintf
                - free
            - BranchSide:      'winpr/libwinpr/crt/string.c:202,2'
              BranchSideFuncs:
                - vsnprintf
                - free
        - Branch String:   'winpr/libwinpr/crt/string.c:206,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:208,8'
              BranchSideFuncs:
                - free
            - BranchSide:      'winpr/libwinpr/crt/string.c:211,7'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/crt/string.c:193,21'
          Dst:             vsnprintf
        - Src:             'winpr/libwinpr/crt/string.c:198,14'
          Dst:             calloc
        - Src:             'winpr/libwinpr/crt/string.c:203,19'
          Dst:             vsnprintf
    - functionName:    winpr_asprintf
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 175
      functionLinenumberEnd: 181
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - slen
        - templ
      BBCount:         3
      ICount:          36
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_vasprintf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crt/string.c:179,11'
          Dst:             winpr_vasprintf
    - functionName:    winpr_str_append
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 157
      functionLinenumberEnd: 171
      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:    11
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/string.c:160,25'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:160,45'
              BranchSideFuncs:
                - strnlen
                - strncat
                - strncat
            - BranchSide:      'winpr/libwinpr/crt/string.c:160,15'
              BranchSideFuncs:
                - strncat
                - strncat
        - Branch String:   'winpr/libwinpr/crt/string.c:161,21'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:161,34'
              BranchSideFuncs:
                - strncat
                - strncat
            - BranchSide:      'winpr/libwinpr/crt/string.c:161,15'
              BranchSideFuncs:
                - strncat
                - strncat
        - Branch String:   'winpr/libwinpr/crt/string.c:163,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:164,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:166,7'
              BranchSideFuncs:
                - strncat
                - strncat
        - Branch String:   'winpr/libwinpr/crt/string.c:166,17'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:166,21'
              BranchSideFuncs:
                - strncat
                - strncat
            - BranchSide:      'winpr/libwinpr/crt/string.c:169,10'
              BranchSideFuncs:
                - strncat
        - Branch String:   'winpr/libwinpr/crt/string.c:166,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:167,11'
              BranchSideFuncs:
                - strncat
                - strncat
            - BranchSide:      'winpr/libwinpr/crt/string.c:169,10'
              BranchSideFuncs:
                - strncat
      Callsites:
        - Src:             'winpr/libwinpr/crt/string.c:158,22'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/crt/string.c:159,21'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/crt/string.c:160,37'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/crt/string.c:167,3'
          Dst:             strncat
        - Src:             'winpr/libwinpr/crt/string.c:169,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: 129
      functionLinenumberEnd: 138
      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:130,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:132,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:136,10'
              BranchSideFuncs:
                - sprintf
      Callsites:
        - Src:             'winpr/libwinpr/crt/string.c:136,2'
          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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    winpr_str_url_encode
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 141
      functionLinenumberEnd: 153
      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:143,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:144,3'
              BranchSideFuncs:
                - strnlen
                - escape
            - BranchSide:      'winpr/libwinpr/crt/string.c:146,14'
              BranchSideFuncs:
                - strnlen
                - escape
        - Branch String:   'winpr/libwinpr/crt/string.c:147,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:149,20'
              BranchSideFuncs:
                - escape
                - strnlen
            - BranchSide:      'winpr/libwinpr/crt/string.c:152,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/crt/string.c:142,14'
          Dst:             calloc
        - Src:             'winpr/libwinpr/crt/string.c:147,25'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/crt/string.c:150,9'
          Dst:             escape
    - functionName:    unescape
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 103
      functionLinenumberEnd: 111
      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:104,21'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:104,25'
              BranchSideFuncs:
                - __ctype_b_loc
                - __ctype_b_loc
                - hex2bin
                - hex2bin
            - BranchSide:      'winpr/libwinpr/crt/string.c:110,10'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:104,43'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:104,46'
              BranchSideFuncs:
                - __ctype_b_loc
                - hex2bin
                - hex2bin
            - BranchSide:      'winpr/libwinpr/crt/string.c:110,10'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:104,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:106,4'
              BranchSideFuncs:
                - hex2bin
                - hex2bin
            - BranchSide:      'winpr/libwinpr/crt/string.c:110,10'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/crt/string.c:104,25'
          Dst:             __ctype_b_loc
        - Src:             'winpr/libwinpr/crt/string.c:104,46'
          Dst:             __ctype_b_loc
        - Src:             'winpr/libwinpr/crt/string.c:107,15'
          Dst:             hex2bin
        - Src:             'winpr/libwinpr/crt/string.c:107,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: 114
      functionLinenumberEnd: 126
      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:116,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:117,3'
              BranchSideFuncs:
                - strnlen
                - unescape
            - BranchSide:      'winpr/libwinpr/crt/string.c:119,9'
              BranchSideFuncs:
                - strnlen
                - unescape
        - Branch String:   'winpr/libwinpr/crt/string.c:120,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:122,22'
              BranchSideFuncs:
                - unescape
                - strnlen
            - BranchSide:      'winpr/libwinpr/crt/string.c:125,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/crt/string.c:115,14'
          Dst:             calloc
        - Src:             'winpr/libwinpr/crt/string.c:120,25'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/crt/string.c:123,16'
          Dst:             unescape
    - functionName:    winpr_int_assert
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/assert.c'
      linkageType:     InternalLinkage
      functionLinenumber: 26
      functionLinenumberEnd: 30
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - condstr
        - file
        - fkt
        - line
      BBCount:         10
      ICount:          56
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintMessage
        - abort
        - winpr_log_backtrace_ex
      functionUses:    902
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/assert.c:28,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/assert.c:28,2'
              BranchSideFuncs:
                - WLog_PrintMessage
                - winpr_log_backtrace_ex
                - abort
            - BranchSide:      'winpr/libwinpr/crt/assert.c:29,25'
              BranchSideFuncs:
                - winpr_log_backtrace_ex
                - abort
      Callsites:
        - Src:             'winpr/libwinpr/crt/assert.c:27,26'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/crt/assert.c:28,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/crt/assert.c:28,2'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/crt/assert.c:29,2'
          Dst:             winpr_log_backtrace_ex
        - Src:             'winpr/libwinpr/crt/assert.c:30,2'
          Dst:             abort
    - functionName:    winpr_ConvertUTF16toUTF8_Internal
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/unicode_builtin.c'
      linkageType:     InternalLinkage
      functionLinenumber: 143
      functionLinenumberEnd: 291
      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:149,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:149,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:151,12'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:161,32'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:161,35'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:191,12'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:161,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:164,8'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:191,12'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:164,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:166,21'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:186,5'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:169,34'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:169,37'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:175,14'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:169,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:171,13'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:175,14'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:175,14'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:0,0'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:178,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:194,32'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:194,35'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:200,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:194,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:196,5'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:200,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:203,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:205,17'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:207,12'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:207,12'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:209,17'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:211,12'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:211,12'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:213,17'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:215,12'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:215,12'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:217,17'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:221,17'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:227,28'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:227,33'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:235,8'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:227,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:229,13'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:235,8'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:235,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:237,12'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:263,12'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:237,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:241,29'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:246,29'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:252,29'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:258,28'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:260,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:263,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:267,6'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:272,6'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:277,6'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:282,6'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    isLegalUTF8
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/unicode_builtin.c'
      linkageType:     InternalLinkage
      functionLinenumber: 308
      functionLinenumberEnd: 378
      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:312,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:315,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:319,15'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:325,15'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:331,15'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:370,9'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:319,33'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:319,36'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:320,5'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:319,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:320,5'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:322,4'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:325,33'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:325,36'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:326,5'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:325,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:326,5'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:328,4'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:331,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:332,5'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:334,13'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:334,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:338,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:344,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:350,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:356,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:362,10'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:338,10'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:339,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:341,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:344,10'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:345,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:347,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:350,10'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:351,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:353,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:356,10'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:357,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:359,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:362,10'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:363,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:364,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:370,24'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:370,28'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:372,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:370,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:371,5'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:372,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:374,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:375,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:377,2'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    winpr_ConvertUTF8toUTF16_Internal
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/unicode_builtin.c'
      linkageType:     InternalLinkage
      functionLinenumber: 387
      functionLinenumberEnd: 531
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - sourceStart
        - sourceEnd
        - targetStart
        - targetEnd
        - flags
      BBCount:         85
      ICount:          529
      EdgeCount:       104
      CyclomaticComplexity: 21
      functionsReached:
        - isLegalUTF8
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:393,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:393,2'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - isLegalUTF8
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:395,12'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - isLegalUTF8
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:397,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:397,7'
              BranchSideFuncs:
                - winpr_int_assert
                - isLegalUTF8
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:397,7'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:397,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:397,7'
              BranchSideFuncs:
                - winpr_int_assert
                - isLegalUTF8
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:397,7'
              BranchSideFuncs:
                - winpr_int_assert
                - isLegalUTF8
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:397,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:397,7'
              BranchSideFuncs:
                - isLegalUTF8
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:397,7'
              BranchSideFuncs:
                - winpr_int_assert
                - isLegalUTF8
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:397,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:397,7'
              BranchSideFuncs:
                - winpr_int_assert
                - isLegalUTF8
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:397,7'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:397,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:397,7'
              BranchSideFuncs:
                - isLegalUTF8
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:397,7'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:399,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:401,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:406,20'
              BranchSideFuncs:
                - isLegalUTF8
                - winpr_int_assert
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:406,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:408,11'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - isLegalUTF8
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:415,11'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - isLegalUTF8
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:415,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:418,18'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - isLegalUTF8
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:424,18'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - isLegalUTF8
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:430,18'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - isLegalUTF8
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:436,18'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - isLegalUTF8
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:442,18'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - isLegalUTF8
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:448,18'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - isLegalUTF8
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:451,25'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - isLegalUTF8
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:453,29'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:453,34'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - isLegalUTF8
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:460,7'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - isLegalUTF8
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:453,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:455,15'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - isLegalUTF8
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:460,7'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - isLegalUTF8
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:460,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:464,8'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - isLegalUTF8
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:488,12'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - isLegalUTF8
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:464,33'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:464,36'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - isLegalUTF8
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:482,10'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - isLegalUTF8
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:464,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:466,9'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - isLegalUTF8
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:482,10'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - isLegalUTF8
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:466,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:468,17'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:474,11'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - isLegalUTF8
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:474,10'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:475,14'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - isLegalUTF8
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:477,13'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - isLegalUTF8
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:482,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:483,28'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - isLegalUTF8
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:485,12'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - isLegalUTF8
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:488,12'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:490,8'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - isLegalUTF8
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:507,9'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - isLegalUTF8
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:490,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:492,12'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:498,10'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - isLegalUTF8
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:498,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:499,13'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - isLegalUTF8
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:501,12'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - isLegalUTF8
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:507,34'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:507,39'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - isLegalUTF8
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:514,7'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - isLegalUTF8
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:507,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:509,16'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - isLegalUTF8
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:514,7'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - isLegalUTF8
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:516,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:518,29'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - isLegalUTF8
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:523,11'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - isLegalUTF8
      Callsites:
        - Src:             'winpr/libwinpr/crt/unicode_builtin.c:397,7'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/crt/unicode_builtin.c:397,7'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/crt/unicode_builtin.c:406,8'
          Dst:             isLegalUTF8
    - functionName:    winpr_ConvertUTF16toUTF8
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/unicode_builtin.c'
      linkageType:     InternalLinkage
      functionLinenumber: 581
      functionLinenumberEnd: 620
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - src
        - cchSrc
        - dst
        - cchDst
      BBCount:         36
      ICount:          198
      EdgeCount:       43
      CyclomaticComplexity: 9
      functionsReached:
        - SetLastError
        - _wcsnlen
        - winpr_ConvertUTF16toUTF8_Internal
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:589,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:590,40'
              BranchSideFuncs:
                - _wcsnlen
                - winpr_ConvertUTF16toUTF8_Internal
                - winpr_int_assert
                - winpr_int_assert
                - SetLastError
                - winpr_ConvertUTF16toUTF8_Internal
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:592,11'
              BranchSideFuncs:
                - winpr_ConvertUTF16toUTF8_Internal
                - winpr_int_assert
                - winpr_int_assert
                - SetLastError
                - winpr_ConvertUTF16toUTF8_Internal
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:595,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:598,50'
              BranchSideFuncs:
                - winpr_ConvertUTF16toUTF8_Internal
                - winpr_int_assert
                - winpr_int_assert
                - SetLastError
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:604,12'
              BranchSideFuncs:
                - winpr_ConvertUTF16toUTF8_Internal
                - winpr_int_assert
                - winpr_int_assert
                - SetLastError
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:613,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:615,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:619,10'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:619,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:619,36'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:619,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:619,36'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:619,36'
              BranchSideFuncs:
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:619,36'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:619,36'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:619,36'
              BranchSideFuncs:
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:619,36'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:619,36'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:619,36'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:619,36'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:619,36'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:619,36'
              BranchSideFuncs:
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:619,36'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:619,36'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:619,36'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:619,36'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/crt/unicode_builtin.c:590,17'
          Dst:             _wcsnlen
        - Src:             'winpr/libwinpr/crt/unicode_builtin.c:598,7'
          Dst:             winpr_ConvertUTF16toUTF8_Internal
        - Src:             'winpr/libwinpr/crt/unicode_builtin.c:608,7'
          Dst:             winpr_ConvertUTF16toUTF8_Internal
        - Src:             'winpr/libwinpr/crt/unicode_builtin.c:615,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/crt/unicode_builtin.c:619,36'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/crt/unicode_builtin.c:619,36'
          Dst:             winpr_int_assert
    - functionName:    int_WideCharToMultiByte
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/unicode_builtin.c'
      linkageType:     InternalLinkage
      functionLinenumber: 668
      functionLinenumberEnd: 699
      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:         43
      ICount:          194
      EdgeCount:       51
      CyclomaticComplexity: 10
      functionsReached:
        - _wcslen
        - winpr_ConvertUTF16toUTF8
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:673,25'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:673,29'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:674,3'
              BranchSideFuncs: []
        - 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,6'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_ConvertUTF16toUTF8
                - _wcslen
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:676,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:677,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:679,2'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_ConvertUTF16toUTF8
                - _wcslen
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:679,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:679,2'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_ConvertUTF16toUTF8
                - _wcslen
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:679,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:681,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:683,30'
              BranchSideFuncs:
                - _wcslen
                - winpr_int_assert
                - winpr_int_assert
                - winpr_ConvertUTF16toUTF8
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:689,15'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_ConvertUTF16toUTF8
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:684,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:685,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:686,20'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_ConvertUTF16toUTF8
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:697,34'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:697,34'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_ConvertUTF16toUTF8
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:697,34'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:697,34'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:697,34'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_ConvertUTF16toUTF8
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:697,34'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_ConvertUTF16toUTF8
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:697,34'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:697,34'
              BranchSideFuncs:
                - winpr_ConvertUTF16toUTF8
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:697,34'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_ConvertUTF16toUTF8
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:697,34'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:697,34'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_ConvertUTF16toUTF8
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:697,34'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:697,34'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:697,34'
              BranchSideFuncs:
                - winpr_ConvertUTF16toUTF8
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:697,34'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/crt/unicode_builtin.c:679,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/crt/unicode_builtin.c:683,22'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/crt/unicode_builtin.c:697,34'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/crt/unicode_builtin.c:697,34'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/crt/unicode_builtin.c:696,9'
          Dst:             winpr_ConvertUTF16toUTF8
    - functionName:    winpr_ConvertUTF8toUTF16
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/unicode_builtin.c'
      linkageType:     InternalLinkage
      functionLinenumber: 539
      functionLinenumberEnd: 578
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - src
        - cchSrc
        - dst
        - cchDst
      BBCount:         36
      ICount:          200
      EdgeCount:       43
      CyclomaticComplexity: 9
      functionsReached:
        - SetLastError
        - strnlen
        - winpr_ConvertUTF8toUTF16_Internal
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:547,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:548,38'
              BranchSideFuncs:
                - strnlen
                - winpr_ConvertUTF8toUTF16_Internal
                - winpr_int_assert
                - winpr_int_assert
                - SetLastError
                - winpr_ConvertUTF8toUTF16_Internal
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:550,11'
              BranchSideFuncs:
                - winpr_ConvertUTF8toUTF16_Internal
                - winpr_int_assert
                - winpr_int_assert
                - SetLastError
                - winpr_ConvertUTF8toUTF16_Internal
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:553,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:556,50'
              BranchSideFuncs:
                - winpr_ConvertUTF8toUTF16_Internal
                - winpr_int_assert
                - winpr_int_assert
                - SetLastError
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:562,12'
              BranchSideFuncs:
                - winpr_ConvertUTF8toUTF16_Internal
                - winpr_int_assert
                - winpr_int_assert
                - SetLastError
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:571,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:573,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:577,10'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:577,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:577,36'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:577,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:577,36'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:577,36'
              BranchSideFuncs:
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:577,36'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:577,36'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:577,36'
              BranchSideFuncs:
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:577,36'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:577,36'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:577,36'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:577,36'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:577,36'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:577,36'
              BranchSideFuncs:
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:577,36'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:577,36'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:577,36'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:577,36'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/crt/unicode_builtin.c:548,17'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/crt/unicode_builtin.c:556,7'
          Dst:             winpr_ConvertUTF8toUTF16_Internal
        - Src:             'winpr/libwinpr/crt/unicode_builtin.c:566,7'
          Dst:             winpr_ConvertUTF8toUTF16_Internal
        - Src:             'winpr/libwinpr/crt/unicode_builtin.c:573,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/crt/unicode_builtin.c:577,36'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/crt/unicode_builtin.c:577,36'
          Dst:             winpr_int_assert
    - functionName:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 216
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - tag
        - log_level
        - line
        - file
        - fkt
      BBCount:         9
      ICount:          67
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintMessageVA
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/wlog.h:206,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/wlog.h:207,30'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessageVA
            - BranchSide:      'winpr/include/winpr/wlog.h:209,26'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessageVA
        - Branch String:   'winpr/include/winpr/wlog.h:209,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/wlog.h:209,7'
              BranchSideFuncs:
                - WLog_PrintMessageVA
            - BranchSide:      'winpr/include/winpr/wlog.h:212,4'
              BranchSideFuncs:
                - WLog_PrintMessageVA
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:207,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:209,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:213,4'
          Dst:             WLog_PrintMessageVA
    - functionName:    int_MultiByteToWideChar
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/unicode_builtin.c'
      linkageType:     InternalLinkage
      functionLinenumber: 626
      functionLinenumberEnd: 663
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - int
        - int
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - CodePage
        - dwFlags
        - lpMultiByteStr
        - cbMultiByte
        - lpWideCharStr
        - cchWideChar
      BBCount:         48
      ICount:          208
      EdgeCount:       55
      CyclomaticComplexity: 9
      functionsReached:
        - WLog_Print_dbg_tag
        - strlen
        - winpr_ConvertUTF8toUTF16
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:632,25'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:632,29'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:633,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:632,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:633,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:635,6'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_ConvertUTF8toUTF16
                - WLog_Print_dbg_tag.1848
                - strlen
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:635,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:636,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:638,6'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_ConvertUTF8toUTF16
                - WLog_Print_dbg_tag.1848
                - strlen
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:638,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:640,29'
              BranchSideFuncs:
                - strlen
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_ConvertUTF8toUTF16
                - WLog_Print_dbg_tag.1848
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:646,15'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_ConvertUTF8toUTF16
                - WLog_Print_dbg_tag.1848
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:641,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:642,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:643,20'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_ConvertUTF8toUTF16
                - WLog_Print_dbg_tag.1848
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:648,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:648,2'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_ConvertUTF8toUTF16
                - WLog_Print_dbg_tag.1848
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:648,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:649,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:653,4'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_ConvertUTF8toUTF16
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:653,4'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_ConvertUTF8toUTF16
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:656,4'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.1848
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:661,34'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:661,34'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_ConvertUTF8toUTF16
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:661,34'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:661,34'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:661,34'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_ConvertUTF8toUTF16
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:661,34'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_ConvertUTF8toUTF16
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:661,34'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:661,34'
              BranchSideFuncs:
                - winpr_ConvertUTF8toUTF16
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:661,34'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_ConvertUTF8toUTF16
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:661,34'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:661,34'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_ConvertUTF8toUTF16
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:661,34'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:661,34'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:661,34'
              BranchSideFuncs:
                - winpr_ConvertUTF8toUTF16
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:661,34'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/crt/unicode_builtin.c:640,22'
          Dst:             strlen
        - Src:             'winpr/libwinpr/crt/unicode_builtin.c:648,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/crt/unicode_builtin.c:656,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/crt/unicode_builtin.c:661,34'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/crt/unicode_builtin.c:661,34'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/crt/unicode_builtin.c:660,9'
          Dst:             winpr_ConvertUTF8toUTF16
    - functionName:    sTebDestruct
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/nt/nt.c'
      linkageType:     InternalLinkage
      functionLinenumber: 40
      functionLinenumberEnd: 42
      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:    FSInformationClass2Tag
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/nt/nt.c'
      linkageType:     InternalLinkage
      functionLinenumber: 67
      functionLinenumberEnd: 153
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - value
      BBCount:         43
      ICount:          218
      EdgeCount:       84
      CyclomaticComplexity: 43
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/nt/nt.c:68,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/nt/nt.c:71,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/nt/nt.c:73,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/nt/nt.c:75,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/nt/nt.c:77,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/nt/nt.c:79,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/nt/nt.c:81,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/nt/nt.c:83,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/nt/nt.c:85,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/nt/nt.c:87,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/nt/nt.c:89,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/nt/nt.c:91,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/nt/nt.c:93,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/nt/nt.c:95,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/nt/nt.c:97,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/nt/nt.c:99,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/nt/nt.c:101,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/nt/nt.c:103,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/nt/nt.c:105,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/nt/nt.c:107,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/nt/nt.c:109,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/nt/nt.c:111,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/nt/nt.c:113,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/nt/nt.c:115,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/nt/nt.c:117,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/nt/nt.c:119,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/nt/nt.c:121,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/nt/nt.c:123,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/nt/nt.c:125,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/nt/nt.c:127,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/nt/nt.c:129,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/nt/nt.c:131,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/nt/nt.c:133,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/nt/nt.c:135,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/nt/nt.c:137,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/nt/nt.c:139,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/nt/nt.c:141,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/nt/nt.c:143,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/nt/nt.c:145,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/nt/nt.c:147,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/nt/nt.c:149,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/nt/nt.c:151,4'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    sTebInitOnce
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/nt/nt.c'
      linkageType:     InternalLinkage
      functionLinenumber: 45
      functionLinenumberEnd: 47
      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:46,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/nt/nt.c:46,2'
              BranchSideFuncs:
                - pthread_key_create
            - BranchSide:      'winpr/libwinpr/nt/nt.c:46,2'
              BranchSideFuncs:
                - pthread_key_create
      Callsites:
        - Src:             'winpr/libwinpr/nt/nt.c:46,2'
          Dst:             pthread_key_create
        - Src:             'winpr/libwinpr/nt/nt.c:46,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: 50
      functionLinenumberEnd: 62
      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:51,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/nt/nt.c:51,7'
              BranchSideFuncs:
                - pthread_once
                - pthread_getspecific
                - calloc
                - pthread_setspecific
            - BranchSide:      'winpr/libwinpr/nt/nt.c:51,7'
              BranchSideFuncs:
                - pthread_once
                - pthread_getspecific
                - calloc
                - pthread_setspecific
        - Branch String:   'winpr/libwinpr/nt/nt.c:53,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/nt/nt.c:53,6'
              BranchSideFuncs:
                - pthread_getspecific
                - calloc
                - pthread_setspecific
            - BranchSide:      'winpr/libwinpr/nt/nt.c:55,34'
              BranchSideFuncs:
                - pthread_getspecific
                - calloc
                - pthread_setspecific
        - Branch String:   'winpr/libwinpr/nt/nt.c:55,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/nt/nt.c:57,10'
              BranchSideFuncs:
                - calloc
                - pthread_setspecific
            - BranchSide:      'winpr/libwinpr/nt/nt.c:61,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/nt/nt.c:58,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/nt/nt.c:59,25'
              BranchSideFuncs:
                - pthread_setspecific
            - BranchSide:      'winpr/libwinpr/nt/nt.c:60,3'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/nt/nt.c:53,6'
          Dst:             pthread_once
        - Src:             'winpr/libwinpr/nt/nt.c:53,6'
          Dst:             sTebInitOnce
        - Src:             'winpr/libwinpr/nt/nt.c:55,14'
          Dst:             pthread_getspecific
        - Src:             'winpr/libwinpr/nt/nt.c:57,10'
          Dst:             calloc
        - Src:             'winpr/libwinpr/nt/nt.c:59,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: 254
      functionLinenumberEnd: 272
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpCriticalSection
      BBCount:         12
      ICount:          62
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - sem_destroy
        - winpr_int_assert
      functionUses:    6
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/synch/critical.c:255,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/critical.c:255,2'
              BranchSideFuncs:
                - sem_destroy
                - free
            - BranchSide:      'winpr/libwinpr/synch/critical.c:255,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/synch/critical.c:262,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/critical.c:262,6'
              BranchSideFuncs:
                - sem_destroy
                - free
            - BranchSide:      'winpr/libwinpr/synch/critical.c:267,29'
              BranchSideFuncs:
                - sem_destroy
                - free
      Callsites:
        - Src:             'winpr/libwinpr/synch/critical.c:255,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/synch/critical.c:267,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: 141
      functionLinenumberEnd: 148
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpCriticalSection
      BBCount:         9
      ICount:          33
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - sem_post
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/synch/critical.c:142,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/critical.c:142,2'
              BranchSideFuncs:
                - sem_post
            - BranchSide:      'winpr/libwinpr/synch/critical.c:142,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/synch/critical.c:142,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/synch/critical.c:146,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: 232
      functionLinenumberEnd: 251
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpCriticalSection
      BBCount:         15
      ICount:          61
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - InterlockedDecrement
        - UnWaitCriticalSection
        - winpr_int_assert
      functionUses:    26
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/synch/critical.c:233,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/critical.c:233,2'
              BranchSideFuncs:
                - InterlockedDecrement
                - InterlockedDecrement
                - UnWaitCriticalSection
            - BranchSide:      'winpr/libwinpr/synch/critical.c:233,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/synch/critical.c:236,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/critical.c:239,3'
              BranchSideFuncs:
                - InterlockedDecrement
                - UnWaitCriticalSection
            - BranchSide:      'winpr/libwinpr/synch/critical.c:249,31'
              BranchSideFuncs:
                - InterlockedDecrement
        - Branch String:   'winpr/libwinpr/synch/critical.c:241,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/critical.c:244,26'
              BranchSideFuncs:
                - UnWaitCriticalSection
            - BranchSide:      'winpr/libwinpr/synch/critical.c:246,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/synch/critical.c:233,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/synch/critical.c:241,7'
          Dst:             InterlockedDecrement
        - Src:             'winpr/libwinpr/synch/critical.c:244,4'
          Dst:             UnWaitCriticalSection
        - Src:             'winpr/libwinpr/synch/critical.c:249,9'
          Dst:             InterlockedDecrement
    - functionName:    TryEnterCriticalSection
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/critical.c'
      linkageType:     InternalLinkage
      functionLinenumber: 206
      functionLinenumberEnd: 229
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpCriticalSection
      BBCount:         14
      ICount:          76
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - GetCurrentThreadId
        - InterlockedCompareExchange
        - InterlockedIncrement
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/synch/critical.c:209,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/critical.c:209,2'
              BranchSideFuncs:
                - InterlockedCompareExchange
                - InterlockedIncrement
            - BranchSide:      'winpr/libwinpr/synch/critical.c:209,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/synch/critical.c:212,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/critical.c:214,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/synch/critical.c:220,6'
              BranchSideFuncs:
                - InterlockedIncrement
        - Branch String:   'winpr/libwinpr/synch/critical.c:220,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/critical.c:223,3'
              BranchSideFuncs:
                - InterlockedIncrement
            - BranchSide:      'winpr/libwinpr/synch/critical.c:228,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/synch/critical.c:207,45'
          Dst:             GetCurrentThreadId
        - Src:             'winpr/libwinpr/synch/critical.c:209,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/synch/critical.c:212,6'
          Dst:             InterlockedCompareExchange
        - Src:             'winpr/libwinpr/synch/critical.c:224,3'
          Dst:             InterlockedIncrement
    - functionName:    WaitForCriticalSection
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/critical.c'
      linkageType:     InternalLinkage
      functionLinenumber: 131
      functionLinenumberEnd: 138
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpCriticalSection
      BBCount:         9
      ICount:          33
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - sem_wait
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/synch/critical.c:132,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/critical.c:132,2'
              BranchSideFuncs:
                - sem_wait
            - BranchSide:      'winpr/libwinpr/synch/critical.c:132,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/synch/critical.c:132,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/synch/critical.c:136,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: 151
      functionLinenumberEnd: 203
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpCriticalSection
      BBCount:         15
      ICount:          69
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - GetCurrentThreadId
        - InterlockedIncrement
        - WaitForCriticalSection
        - winpr_int_assert
      functionUses:    20
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/synch/critical.c:152,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/critical.c:152,2'
              BranchSideFuncs:
                - InterlockedIncrement
                - GetCurrentThreadId
                - GetCurrentThreadId
                - WaitForCriticalSection
            - BranchSide:      'winpr/libwinpr/synch/critical.c:152,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/synch/critical.c:186,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/critical.c:189,7'
              BranchSideFuncs:
                - GetCurrentThreadId
                - WaitForCriticalSection
                - GetCurrentThreadId
            - BranchSide:      'winpr/libwinpr/synch/critical.c:201,2'
              BranchSideFuncs:
                - GetCurrentThreadId
        - Branch String:   'winpr/libwinpr/synch/critical.c:189,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/critical.c:192,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/synch/critical.c:197,26'
              BranchSideFuncs:
                - WaitForCriticalSection
                - GetCurrentThreadId
      Callsites:
        - Src:             'winpr/libwinpr/synch/critical.c:152,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/synch/critical.c:186,6'
          Dst:             InterlockedIncrement
        - Src:             'winpr/libwinpr/synch/critical.c:189,61'
          Dst:             GetCurrentThreadId
        - Src:             'winpr/libwinpr/synch/critical.c:197,3'
          Dst:             WaitForCriticalSection
        - Src:             'winpr/libwinpr/synch/critical.c:202,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:         18
      ICount:          102
      EdgeCount:       21
      CyclomaticComplexity: 5
      functionsReached:
        - SetCriticalSectionSpinCount
        - WLog_Print_dbg_tag
        - sem_init
        - winpr_int_assert
      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_Print_dbg_tag.1950
            - BranchSide:      'winpr/libwinpr/synch/critical.c:55,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/synch/critical.c:66,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/critical.c:68,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.1950
                - malloc
                - sem_init
                - SetCriticalSectionSpinCount
                - free
            - BranchSide:      'winpr/libwinpr/synch/critical.c:71,2'
              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:             winpr_int_assert
        - Src:             'winpr/libwinpr/synch/critical.c:68,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/synch/critical.c:89,6'
          Dst:             sem_init
        - Src:             'winpr/libwinpr/synch/critical.c:93,2'
          Dst:             SetCriticalSectionSpinCount
    - functionName:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 216
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - tag
        - log_level
        - line
        - file
        - fkt
      BBCount:         9
      ICount:          67
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintMessageVA
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/wlog.h:206,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/wlog.h:207,30'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessageVA
            - BranchSide:      'winpr/include/winpr/wlog.h:209,26'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessageVA
        - Branch String:   'winpr/include/winpr/wlog.h:209,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/wlog.h:209,7'
              BranchSideFuncs:
                - WLog_PrintMessageVA
            - BranchSide:      'winpr/include/winpr/wlog.h:212,4'
              BranchSideFuncs:
                - WLog_PrintMessageVA
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:207,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:209,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:213,4'
          Dst:             WLog_PrintMessageVA
    - 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: 107
      functionLinenumberEnd: 126
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - lpCriticalSection
        - dwSpinCount
      BBCount:         9
      ICount:          32
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/synch/critical.c:108,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/critical.c:108,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/synch/critical.c:108,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/synch/critical.c:108,2'
          Dst:             winpr_int_assert
    - 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: 185
      functionLinenumberEnd: 192
      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:188,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:189,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/synch/event.c:191,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/synch/event.c:188,7'
          Dst:             EventIsHandled
    - functionName:    EventIsHandled
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 180
      functionLinenumberEnd: 181
      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:181,9'
          Dst:             WINPR_HANDLE_IS_HANDLED
    - functionName:    EventCloseHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 226
      functionLinenumberEnd: 233
      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:229,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:230,3'
              BranchSideFuncs:
                - EventCloseHandle_
            - BranchSide:      'winpr/libwinpr/synch/event.c:232,27'
              BranchSideFuncs:
                - EventCloseHandle_
      Callsites:
        - Src:             'winpr/libwinpr/synch/event.c:229,7'
          Dst:             EventIsHandled
        - Src:             'winpr/libwinpr/synch/event.c:232,9'
          Dst:             EventCloseHandle_
    - functionName:    EventCloseHandle_
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 195
      functionLinenumberEnd: 223
      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:196,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:197,3'
              BranchSideFuncs:
                - winpr_event_uninit
                - free
                - free
            - BranchSide:      'winpr/libwinpr/synch/event.c:199,6'
              BranchSideFuncs:
                - winpr_event_uninit
                - free
                - free
        - Branch String:   'winpr/libwinpr/synch/event.c:199,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:202,3'
              BranchSideFuncs:
                - winpr_event_uninit
                - free
                - free
            - BranchSide:      'winpr/libwinpr/synch/event.c:205,22'
              BranchSideFuncs:
                - winpr_event_uninit
                - free
                - free
      Callsites:
        - Src:             'winpr/libwinpr/synch/event.c:205,2'
          Dst:             winpr_event_uninit
    - functionName:    winpr_event_uninit
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 163
      functionLinenumberEnd: 175
      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:164,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:166,9'
              BranchSideFuncs:
                - close
                - close
            - BranchSide:      'winpr/libwinpr/synch/event.c:170,6'
              BranchSideFuncs:
                - close
        - Branch String:   'winpr/libwinpr/synch/event.c:170,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:170,6'
              BranchSideFuncs:
                - close
            - BranchSide:      'winpr/libwinpr/synch/event.c:172,9'
              BranchSideFuncs:
                - close
      Callsites:
        - Src:             'winpr/libwinpr/synch/event.c:166,3'
          Dst:             close
        - Src:             'winpr/libwinpr/synch/event.c:172,3'
          Dst:             close
    - functionName:    GetEventWaitObject
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 525
      functionLinenumberEnd: 531
      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:529,7'
          Dst:             GetEventFileDescriptor
    - functionName:    GetEventFileDescriptor
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 473
      functionLinenumberEnd: 475
      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:475,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: 487
      functionLinenumberEnd: 512
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - hEvent
        - FileDescriptor
        - mode
      BBCount:         16
      ICount:          115
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - SetLastError
        - WLog_Print_dbg_tag
        - close
        - winpr_Handle_GetInfo
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/synch/event.c:493,52'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:493,55'
              BranchSideFuncs:
                - close
                - WLog_Print_dbg_tag.2020
                - SetLastError
            - BranchSide:      'winpr/libwinpr/synch/event.c:495,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2020
                - SetLastError
        - Branch String:   'winpr/libwinpr/synch/event.c:493,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:495,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2020
                - SetLastError
            - BranchSide:      'winpr/libwinpr/synch/event.c:500,24'
              BranchSideFuncs:
                - close
        - Branch String:   'winpr/libwinpr/synch/event.c:502,24'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:502,27'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/synch/event.c:505,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/synch/event.c:502,51'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:502,54'
              BranchSideFuncs:
                - close
            - BranchSide:      'winpr/libwinpr/synch/event.c:505,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/synch/event.c:502,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:503,9'
              BranchSideFuncs:
                - close
            - BranchSide:      'winpr/libwinpr/synch/event.c:505,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/synch/event.c:493,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/synch/event.c:495,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/synch/event.c:496,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/synch/event.c:503,3'
          Dst:             close
    - functionName:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 216
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - tag
        - log_level
        - line
        - file
        - fkt
      BBCount:         9
      ICount:          67
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintMessageVA
      functionUses:    9
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/wlog.h:206,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/wlog.h:207,30'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessageVA
            - BranchSide:      'winpr/include/winpr/wlog.h:209,26'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessageVA
        - Branch String:   'winpr/include/winpr/wlog.h:209,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/wlog.h:209,7'
              BranchSideFuncs:
                - WLog_PrintMessageVA
            - BranchSide:      'winpr/include/winpr/wlog.h:212,4'
              BranchSideFuncs:
                - WLog_PrintMessageVA
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:207,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:209,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:213,4'
          Dst:             WLog_PrintMessageVA
    - functionName:    CreateWaitObjectEvent
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 455
      functionLinenumberEnd: 458
      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:457,9'
          Dst:             CreateFileDescriptorEventW
    - functionName:    CreateFileDescriptorEventW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 419
      functionLinenumberEnd: 437
      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:425,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:425,6'
              BranchSideFuncs:
                - winpr_event_init_from_fd
                - WINPR_HANDLE_SET_TYPE_AND_MODE.2023
            - BranchSide:      'winpr/libwinpr/synch/event.c:427,3'
              BranchSideFuncs:
                - winpr_event_init_from_fd
                - WINPR_HANDLE_SET_TYPE_AND_MODE.2023
      Callsites:
        - Src:             'winpr/libwinpr/synch/event.c:423,24'
          Dst:             calloc
        - Src:             'winpr/libwinpr/synch/event.c:431,3'
          Dst:             winpr_event_init_from_fd
        - Src:             'winpr/libwinpr/synch/event.c:433,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: 119
      functionLinenumberEnd: 124
      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: 445
      functionLinenumberEnd: 447
      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:446,9'
          Dst:             CreateFileDescriptorEventW
    - functionName:    ResetEvent
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 398
      functionLinenumberEnd: 412
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - hEvent
      BBCount:         9
      ICount:          56
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - SetLastError
        - WLog_Print_dbg_tag
        - winpr_Handle_GetInfo
        - winpr_event_reset
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/synch/event.c:403,52'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:403,55'
              BranchSideFuncs:
                - winpr_event_reset
                - WLog_Print_dbg_tag.2020
                - SetLastError
            - BranchSide:      'winpr/libwinpr/synch/event.c:405,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2020
                - SetLastError
        - Branch String:   'winpr/libwinpr/synch/event.c:403,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:405,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2020
                - SetLastError
            - BranchSide:      'winpr/libwinpr/synch/event.c:410,24'
              BranchSideFuncs:
                - winpr_event_reset
      Callsites:
        - Src:             'winpr/libwinpr/synch/event.c:403,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/synch/event.c:405,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/synch/event.c:406,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/synch/event.c:411,9'
          Dst:             winpr_event_reset
    - functionName:    winpr_event_reset
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 143
      functionLinenumberEnd: 159
      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:156,20'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:156,23'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - eventfd_read
            - BranchSide:      'winpr/libwinpr/synch/event.c:156,3'
              BranchSideFuncs:
                - __errno_location
                - eventfd_read
                - __errno_location
        - Branch String:   'winpr/libwinpr/synch/event.c:156,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:150,14'
              BranchSideFuncs:
                - eventfd_read
                - __errno_location
                - __errno_location
            - BranchSide:      'winpr/libwinpr/synch/event.c:157,2'
              BranchSideFuncs:
                - __errno_location
                - eventfd_read
                - __errno_location
        - Branch String:   'winpr/libwinpr/synch/event.c:157,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:147,3'
              BranchSideFuncs:
                - eventfd_read
                - __errno_location
                - __errno_location
            - BranchSide:      'winpr/libwinpr/synch/event.c:159,10'
              BranchSideFuncs:
                - __errno_location
      Callsites:
        - Src:             'winpr/libwinpr/synch/event.c:151,10'
          Dst:             eventfd_read
        - Src:             'winpr/libwinpr/synch/event.c:156,23'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/synch/event.c:159,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: 371
      functionLinenumberEnd: 377
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - dwDesiredAccess
        - bInheritHandle
        - lpName
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/synch/event.c:376,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    OpenEventW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 361
      functionLinenumberEnd: 367
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - dwDesiredAccess
        - bInheritHandle
        - lpName
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/synch/event.c:366,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    CreateEventExA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 343
      functionLinenumberEnd: 357
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - lpEventAttributes
        - lpName
        - dwFlags
        - dwDesiredAccess
      BBCount:         12
      ICount:          77
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - CreateEventA
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/synch/event.c:347,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:348,11'
              BranchSideFuncs:
                - CreateEventA
                - WLog_Print_dbg_tag.2020
            - BranchSide:      'winpr/libwinpr/synch/event.c:350,6'
              BranchSideFuncs:
                - CreateEventA
                - WLog_Print_dbg_tag.2020
        - Branch String:   'winpr/libwinpr/synch/event.c:350,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:351,10'
              BranchSideFuncs:
                - CreateEventA
                - WLog_Print_dbg_tag.2020
            - BranchSide:      'winpr/libwinpr/synch/event.c:353,6'
              BranchSideFuncs:
                - CreateEventA
                - WLog_Print_dbg_tag.2020
        - Branch String:   'winpr/libwinpr/synch/event.c:353,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:353,6'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2020
                - CreateEventA
            - BranchSide:      'winpr/libwinpr/synch/event.c:354,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2020
                - CreateEventA
      Callsites:
        - Src:             'winpr/libwinpr/synch/event.c:354,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/synch/event.c:357,9'
          Dst:             CreateEventA
    - functionName:    CreateEventA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 277
      functionLinenumberEnd: 320
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpEventAttributes
        - bManualReset
        - bInitialState
        - lpName
      BBCount:         23
      ICount:          143
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - EventCloseHandle_
        - SetEvent
        - WINPR_HANDLE_SET_TYPE_AND_MODE
        - WLog_Print_dbg_tag
        - calloc
        - strdup
        - winpr_event_init
      functionUses:    3
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/synch/event.c:280,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:281,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2020
                - WINPR_HANDLE_SET_TYPE_AND_MODE.2023
                - WLog_Print_dbg_tag.2020
                - winpr_event_init
                - EventCloseHandle_
                - SetEvent
                - strdup
            - BranchSide:      'winpr/libwinpr/synch/event.c:283,7'
              BranchSideFuncs:
                - WINPR_HANDLE_SET_TYPE_AND_MODE.2023
                - WLog_Print_dbg_tag.2020
                - winpr_event_init
                - EventCloseHandle_
                - SetEvent
                - strdup
        - Branch String:   'winpr/libwinpr/synch/event.c:283,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:284,3'
              BranchSideFuncs:
                - WINPR_HANDLE_SET_TYPE_AND_MODE.2023
                - WLog_Print_dbg_tag.2020
                - winpr_event_init
                - EventCloseHandle_
                - SetEvent
                - strdup
            - BranchSide:      'winpr/libwinpr/synch/event.c:286,6'
              BranchSideFuncs:
                - WINPR_HANDLE_SET_TYPE_AND_MODE.2023
                - WLog_Print_dbg_tag.2020
                - winpr_event_init
                - EventCloseHandle_
                - SetEvent
                - strdup
        - Branch String:   'winpr/libwinpr/synch/event.c:286,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:287,24'
              BranchSideFuncs:
                - strdup
                - WINPR_HANDLE_SET_TYPE_AND_MODE.2023
                - WLog_Print_dbg_tag.2020
                - winpr_event_init
                - EventCloseHandle_
                - SetEvent
            - BranchSide:      'winpr/libwinpr/synch/event.c:289,2'
              BranchSideFuncs:
                - WINPR_HANDLE_SET_TYPE_AND_MODE.2023
                - WLog_Print_dbg_tag.2020
                - winpr_event_init
                - EventCloseHandle_
                - SetEvent
        - Branch String:   'winpr/libwinpr/synch/event.c:296,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:297,3'
              BranchSideFuncs:
                - winpr_event_init
                - EventCloseHandle_
                - SetEvent
            - BranchSide:      'winpr/libwinpr/synch/event.c:299,25'
              BranchSideFuncs:
                - winpr_event_init
                - EventCloseHandle_
                - SetEvent
        - Branch String:   'winpr/libwinpr/synch/event.c:299,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:300,3'
              BranchSideFuncs:
                - SetEvent
                - EventCloseHandle_
            - BranchSide:      'winpr/libwinpr/synch/event.c:302,6'
              BranchSideFuncs:
                - SetEvent
                - EventCloseHandle_
        - Branch String:   'winpr/libwinpr/synch/event.c:302,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:304,17'
              BranchSideFuncs:
                - SetEvent
                - EventCloseHandle_
            - BranchSide:      'winpr/libwinpr/synch/event.c:316,17'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/synch/event.c:304,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:305,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/synch/event.c:306,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/synch/event.c:278,37'
          Dst:             calloc
        - Src:             'winpr/libwinpr/synch/event.c:281,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/synch/event.c:287,17'
          Dst:             strdup
        - Src:             'winpr/libwinpr/synch/event.c:294,2'
          Dst:             WINPR_HANDLE_SET_TYPE_AND_MODE
        - Src:             'winpr/libwinpr/synch/event.c:297,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/synch/event.c:299,7'
          Dst:             winpr_event_init
        - Src:             'winpr/libwinpr/synch/event.c:304,8'
          Dst:             SetEvent
        - Src:             'winpr/libwinpr/synch/event.c:318,2'
          Dst:             EventCloseHandle_
    - functionName:    winpr_event_init
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 97
      functionLinenumberEnd: 102
      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:100,18'
          Dst:             eventfd
    - functionName:    SetEvent
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 381
      functionLinenumberEnd: 395
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - hEvent
      BBCount:         9
      ICount:          56
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - SetLastError
        - WLog_Print_dbg_tag
        - winpr_Handle_GetInfo
        - winpr_event_set
      functionUses:    6
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/synch/event.c:386,52'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:386,55'
              BranchSideFuncs:
                - winpr_event_set
                - WLog_Print_dbg_tag.2020
                - SetLastError
            - BranchSide:      'winpr/libwinpr/synch/event.c:388,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2020
                - SetLastError
        - Branch String:   'winpr/libwinpr/synch/event.c:386,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:388,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2020
                - SetLastError
            - BranchSide:      'winpr/libwinpr/synch/event.c:393,24'
              BranchSideFuncs:
                - winpr_event_set
      Callsites:
        - Src:             'winpr/libwinpr/synch/event.c:386,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/synch/event.c:388,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/synch/event.c:389,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/synch/event.c:394,9'
          Dst:             winpr_event_set
    - functionName:    winpr_event_set
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 127
      functionLinenumberEnd: 139
      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:137,19'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:137,22'
              BranchSideFuncs:
                - __errno_location
                - eventfd_write
            - BranchSide:      'winpr/libwinpr/synch/event.c:137,2'
              BranchSideFuncs:
                - eventfd_write
                - __errno_location
        - Branch String:   'winpr/libwinpr/synch/event.c:137,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:132,13'
              BranchSideFuncs:
                - eventfd_write
                - __errno_location
            - BranchSide:      'winpr/libwinpr/synch/event.c:139,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/synch/event.c:133,9'
          Dst:             eventfd_write
        - Src:             'winpr/libwinpr/synch/event.c:137,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: 324
      functionLinenumberEnd: 338
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - lpEventAttributes
        - lpName
        - dwFlags
        - dwDesiredAccess
      BBCount:         12
      ICount:          77
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - CreateEventW
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/synch/event.c:328,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:329,11'
              BranchSideFuncs:
                - CreateEventW
                - WLog_Print_dbg_tag.2020
            - BranchSide:      'winpr/libwinpr/synch/event.c:331,6'
              BranchSideFuncs:
                - CreateEventW
                - WLog_Print_dbg_tag.2020
        - Branch String:   'winpr/libwinpr/synch/event.c:331,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:332,10'
              BranchSideFuncs:
                - CreateEventW
                - WLog_Print_dbg_tag.2020
            - BranchSide:      'winpr/libwinpr/synch/event.c:334,6'
              BranchSideFuncs:
                - CreateEventW
                - WLog_Print_dbg_tag.2020
        - Branch String:   'winpr/libwinpr/synch/event.c:334,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:334,6'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2020
                - CreateEventW
            - BranchSide:      'winpr/libwinpr/synch/event.c:335,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2020
                - CreateEventW
      Callsites:
        - Src:             'winpr/libwinpr/synch/event.c:335,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/synch/event.c:338,9'
          Dst:             CreateEventW
    - functionName:    CreateEventW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 259
      functionLinenumberEnd: 273
      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:263,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:265,34'
              BranchSideFuncs:
                - ConvertWCharToUtf8Alloc
                - CreateEventA
                - free
            - BranchSide:      'winpr/libwinpr/synch/event.c:270,24'
              BranchSideFuncs:
                - CreateEventA
                - free
        - Branch String:   'winpr/libwinpr/synch/event.c:266,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:267,4'
              BranchSideFuncs:
                - CreateEventA
                - free
            - BranchSide:      'winpr/libwinpr/synch/event.c:268,2'
              BranchSideFuncs:
                - CreateEventA
                - free
      Callsites:
        - Src:             'winpr/libwinpr/synch/event.c:265,10'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/synch/event.c:270,11'
          Dst:             CreateEventA
    - functionName:    winpr_InitOnceExecuteOnce
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/init.c'
      linkageType:     InternalLinkage
      functionLinenumber: 55
      functionLinenumberEnd: 97
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - InitOnce
        - InitFn
        - Parameter
        - Context
      BBCount:         14
      ICount:          85
      EdgeCount:       15
      CyclomaticComplexity: 3
      functionsReached:
        - InterlockedCompareExchangePointer
        - Sleep
        - WLog_Print_dbg_tag
      functionUses:    3
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/synch/init.c:58,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/init.c:62,5'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/synch/init.c:67,44'
              BranchSideFuncs:
                - InterlockedCompareExchangePointer
                - Sleep
                - WLog_Print_dbg_tag.2054
            - BranchSide:      'winpr/libwinpr/synch/init.c:88,5'
              BranchSideFuncs:
                - Sleep
                - InterlockedCompareExchangePointer
                - WLog_Print_dbg_tag.2054
            - BranchSide:      'winpr/libwinpr/synch/init.c:91,5'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2054
        - Branch String:   'winpr/libwinpr/synch/init.c:67,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/init.c:71,6'
              BranchSideFuncs:
                - Sleep
                - InterlockedCompareExchangePointer
                - WLog_Print_dbg_tag.2054
            - BranchSide:      'winpr/libwinpr/synch/init.c:75,9'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/synch/init.c:75,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/init.c:78,6'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/synch/init.c:83,5'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/synch/init.c:67,9'
          Dst:             InterlockedCompareExchangePointer
        - Src:             'winpr/libwinpr/synch/init.c:91,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/synch/init.c:95,3'
          Dst:             Sleep
    - functionName:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 216
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - tag
        - log_level
        - line
        - file
        - fkt
      BBCount:         9
      ICount:          67
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintMessageVA
      functionUses:    4
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/wlog.h:206,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/wlog.h:207,30'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessageVA
            - BranchSide:      'winpr/include/winpr/wlog.h:209,26'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessageVA
        - Branch String:   'winpr/include/winpr/wlog.h:209,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/wlog.h:209,7'
              BranchSideFuncs:
                - WLog_PrintMessageVA
            - BranchSide:      'winpr/include/winpr/wlog.h:212,4'
              BranchSideFuncs:
                - WLog_PrintMessageVA
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:207,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:209,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:213,4'
          Dst:             WLog_PrintMessageVA
    - functionName:    winpr_InitOnceInitialize
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/init.c'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 51
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - InitOnce
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/synch/init.c:50,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    winpr_InitOnceComplete
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/init.c'
      linkageType:     InternalLinkage
      functionLinenumber: 43
      functionLinenumberEnd: 45
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpInitOnce
        - dwFlags
        - lpContext
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/synch/init.c:44,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    winpr_InitOnceBeginInitialize
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/init.c'
      linkageType:     InternalLinkage
      functionLinenumber: 36
      functionLinenumberEnd: 38
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpInitOnce
        - dwFlags
        - fPending
        - lpContext
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/synch/init.c:37,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    USleep
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/sleep.c'
      linkageType:     InternalLinkage
      functionLinenumber: 123
      functionLinenumberEnd: 149
      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:125,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:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 216
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - tag
        - log_level
        - line
        - file
        - fkt
      BBCount:         9
      ICount:          67
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintMessageVA
      functionUses:    3
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/wlog.h:206,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/wlog.h:207,30'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessageVA
            - BranchSide:      'winpr/include/winpr/wlog.h:209,26'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessageVA
        - Branch String:   'winpr/include/winpr/wlog.h:209,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/wlog.h:209,7'
              BranchSideFuncs:
                - WLog_PrintMessageVA
            - BranchSide:      'winpr/include/winpr/wlog.h:212,4'
              BranchSideFuncs:
                - WLog_PrintMessageVA
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:207,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:209,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:213,4'
          Dst:             WLog_PrintMessageVA
    - functionName:    SleepEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/sleep.c'
      linkageType:     InternalLinkage
      functionLinenumber: 57
      functionLinenumberEnd: 118
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - dwMilliseconds
        - bAlertable
      BBCount:         28
      ICount:          153
      EdgeCount:       37
      CyclomaticComplexity: 11
      functionsReached:
        - WLog_Print_dbg_tag
        - apc_collectFds
        - apc_executeCompletions
        - pollset_init
        - pollset_poll
        - pollset_uninit
        - usleep
        - winpr_GetCurrentThread
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/synch/sleep.c:64,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/sleep.c:67,7'
              BranchSideFuncs:
                - usleep
                - pollset_init
                - WLog_Print_dbg_tag.2069
                - apc_collectFds
                - WLog_Print_dbg_tag.2069
                - pollset_uninit
                - pollset_poll
                - apc_executeCompletions
                - WLog_Print_dbg_tag.2069
            - BranchSide:      'winpr/libwinpr/synch/sleep.c:73,14'
              BranchSideFuncs:
                - usleep
                - pollset_init
                - WLog_Print_dbg_tag.2069
                - apc_collectFds
                - WLog_Print_dbg_tag.2069
                - pollset_uninit
                - pollset_poll
                - apc_executeCompletions
                - WLog_Print_dbg_tag.2069
        - Branch String:   'winpr/libwinpr/synch/sleep.c:67,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/sleep.c:68,15'
              BranchSideFuncs:
                - usleep
                - pollset_init
                - WLog_Print_dbg_tag.2069
                - apc_collectFds
                - WLog_Print_dbg_tag.2069
                - pollset_uninit
                - pollset_poll
                - apc_executeCompletions
                - WLog_Print_dbg_tag.2069
            - BranchSide:      'winpr/libwinpr/synch/sleep.c:69,2'
              BranchSideFuncs:
                - usleep
                - pollset_init
                - WLog_Print_dbg_tag.2069
                - apc_collectFds
                - WLog_Print_dbg_tag.2069
                - pollset_uninit
                - pollset_poll
                - apc_executeCompletions
                - WLog_Print_dbg_tag.2069
        - Branch String:   'winpr/libwinpr/synch/sleep.c:76,18'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/sleep.c:76,22'
              BranchSideFuncs:
                - usleep
                - pollset_init
                - WLog_Print_dbg_tag.2069
                - apc_collectFds
                - WLog_Print_dbg_tag.2069
                - pollset_uninit
                - pollset_poll
                - apc_executeCompletions
                - WLog_Print_dbg_tag.2069
            - BranchSide:      'winpr/libwinpr/synch/sleep.c:78,10'
              BranchSideFuncs:
                - usleep
        - Branch String:   'winpr/libwinpr/synch/sleep.c:76,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/sleep.c:78,10'
              BranchSideFuncs:
                - pollset_init
                - WLog_Print_dbg_tag.2069
                - apc_collectFds
                - WLog_Print_dbg_tag.2069
                - pollset_uninit
                - pollset_poll
                - apc_executeCompletions
                - WLog_Print_dbg_tag.2069
            - BranchSide:      'winpr/libwinpr/synch/sleep.c:82,30'
              BranchSideFuncs:
                - pollset_init
                - WLog_Print_dbg_tag.2069
                - apc_collectFds
                - WLog_Print_dbg_tag.2069
                - pollset_uninit
                - pollset_poll
                - apc_executeCompletions
                - WLog_Print_dbg_tag.2069
        - Branch String:   'winpr/libwinpr/synch/sleep.c:82,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/sleep.c:84,3'
              BranchSideFuncs:
                - apc_collectFds
                - WLog_Print_dbg_tag.2069
                - pollset_uninit
                - pollset_poll
                - apc_executeCompletions
                - WLog_Print_dbg_tag.2069
            - BranchSide:      'winpr/libwinpr/synch/sleep.c:88,22'
              BranchSideFuncs:
                - apc_collectFds
                - WLog_Print_dbg_tag.2069
                - pollset_uninit
                - pollset_poll
                - apc_executeCompletions
                - WLog_Print_dbg_tag.2069
        - Branch String:   'winpr/libwinpr/synch/sleep.c:88,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/sleep.c:90,3'
              BranchSideFuncs:
                - pollset_poll
                - apc_executeCompletions
                - pollset_uninit
                - WLog_Print_dbg_tag.2069
            - BranchSide:      'winpr/libwinpr/synch/sleep.c:94,7'
              BranchSideFuncs:
                - pollset_poll
                - apc_executeCompletions
                - pollset_uninit
                - WLog_Print_dbg_tag.2069
        - Branch String:   'winpr/libwinpr/synch/sleep.c:94,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/sleep.c:97,35'
              BranchSideFuncs:
                - apc_executeCompletions
                - pollset_uninit
            - BranchSide:      'winpr/libwinpr/synch/sleep.c:105,29'
              BranchSideFuncs:
                - apc_executeCompletions
                - pollset_uninit
        - Branch String:   'winpr/libwinpr/synch/sleep.c:98,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/sleep.c:100,4'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2069
                - pollset_uninit
            - BranchSide:      'winpr/libwinpr/synch/sleep.c:103,2'
              BranchSideFuncs:
                - apc_executeCompletions
                - pollset_uninit
        - Branch String:   'winpr/libwinpr/synch/sleep.c:105,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/sleep.c:107,7'
              BranchSideFuncs:
                - pollset_uninit
            - BranchSide:      'winpr/libwinpr/synch/sleep.c:113,7'
              BranchSideFuncs:
                - pollset_uninit
      Callsites:
        - Src:             'winpr/libwinpr/synch/sleep.c:58,25'
          Dst:             winpr_GetCurrentThread
        - Src:             'winpr/libwinpr/synch/sleep.c:78,3'
          Dst:             usleep
        - Src:             'winpr/libwinpr/synch/sleep.c:82,7'
          Dst:             pollset_init
        - Src:             'winpr/libwinpr/synch/sleep.c:84,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/synch/sleep.c:88,7'
          Dst:             apc_collectFds
        - Src:             'winpr/libwinpr/synch/sleep.c:90,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/synch/sleep.c:97,12'
          Dst:             pollset_poll
        - Src:             'winpr/libwinpr/synch/sleep.c:100,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/synch/sleep.c:105,6'
          Dst:             apc_executeCompletions
        - Src:             'winpr/libwinpr/synch/sleep.c:116,2'
          Dst:             pollset_uninit
    - functionName:    Sleep
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/sleep.c'
      linkageType:     InternalLinkage
      functionLinenumber: 52
      functionLinenumberEnd: 54
      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:53,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:         65
      ICount:          423
      EdgeCount:       89
      CyclomaticComplexity: 26
      functionsReached:
        - SetLastError
        - SleepEx
        - WLog_Print_dbg_tag
        - _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.2109
                - pollset_init
                - WLog_Print_dbg_tag.2108
                - SetLastError
                - pollset_add
                - WLog_Print_dbg_tag.2108
                - pollset_uninit
                - SetLastError
                - pollset_poll
                - pollset_isSignaled
                - pollset_uninit
                - winpr_Handle_cleanup
                - apc_executeCompletions
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - apc_collectFds
                - WLog_Print_dbg_tag.2108
                - WLog_Print_dbg_tag.2108
                - SetLastError
                - _GetCurrentThread
                - pthread_mutex_lock
                - ts_from_ns
                - ts_add_ms
                - pthread_mutex_timedlock
                - winpr_Handle_getFd.2109
                - waitpid
                - SleepEx
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - SetLastError
            - BranchSide:      'winpr/libwinpr/synch/wait.c:148,6'
              BranchSideFuncs:
                - winpr_Handle_getFd.2109
                - pollset_init
                - WLog_Print_dbg_tag.2108
                - SetLastError
                - pollset_add
                - WLog_Print_dbg_tag.2108
                - pollset_uninit
                - SetLastError
                - pollset_poll
                - pollset_isSignaled
                - pollset_uninit
                - winpr_Handle_cleanup
                - apc_executeCompletions
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - apc_collectFds
                - WLog_Print_dbg_tag.2108
                - WLog_Print_dbg_tag.2108
                - SetLastError
                - _GetCurrentThread
                - pthread_mutex_lock
                - ts_from_ns
                - ts_add_ms
                - pthread_mutex_timedlock
                - winpr_Handle_getFd.2109
                - waitpid
                - SleepEx
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - SetLastError
        - Branch String:   'winpr/libwinpr/synch/wait.c:148,34'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:148,56'
              BranchSideFuncs:
                - winpr_Handle_getFd.2109
                - winpr_Handle_getFd.2109
                - pollset_init
                - WLog_Print_dbg_tag.2108
                - SetLastError
                - pollset_add
                - WLog_Print_dbg_tag.2108
                - pollset_uninit
                - SetLastError
                - pollset_poll
                - pollset_isSignaled
                - pollset_uninit
                - winpr_Handle_cleanup
                - apc_executeCompletions
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - apc_collectFds
                - WLog_Print_dbg_tag.2108
                - WLog_Print_dbg_tag.2108
                - SetLastError
                - _GetCurrentThread
                - pthread_mutex_lock
                - ts_from_ns
                - ts_add_ms
                - pthread_mutex_timedlock
                - waitpid
                - SleepEx
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - SetLastError
            - BranchSide:      'winpr/libwinpr/synch/wait.c:188,6'
              BranchSideFuncs:
                - winpr_Handle_getFd.2109
                - pollset_init
                - WLog_Print_dbg_tag.2108
                - SetLastError
                - pollset_add
                - WLog_Print_dbg_tag.2108
                - pollset_uninit
                - SetLastError
                - pollset_poll
                - pollset_isSignaled
                - pollset_uninit
                - winpr_Handle_cleanup
                - apc_executeCompletions
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - apc_collectFds
                - WLog_Print_dbg_tag.2108
                - WLog_Print_dbg_tag.2108
                - SetLastError
                - _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
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - SetLastError
            - BranchSide:      'winpr/libwinpr/synch/wait.c:188,6'
              BranchSideFuncs:
                - winpr_Handle_getFd.2109
                - pollset_init
                - WLog_Print_dbg_tag.2108
                - SetLastError
                - pollset_add
                - WLog_Print_dbg_tag.2108
                - pollset_uninit
                - SetLastError
                - pollset_poll
                - pollset_isSignaled
                - pollset_uninit
                - winpr_Handle_cleanup
                - apc_executeCompletions
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - apc_collectFds
                - WLog_Print_dbg_tag.2108
                - WLog_Print_dbg_tag.2108
                - SetLastError
                - _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
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - SetLastError
        - Branch String:   'winpr/libwinpr/synch/wait.c:175,16'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:175,40'
              BranchSideFuncs:
                - SleepEx
                - waitpid
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - SetLastError
            - BranchSide:      'winpr/libwinpr/synch/wait.c:175,14'
              BranchSideFuncs:
                - SleepEx
                - waitpid
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - SetLastError
        - 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
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - SetLastError
        - Branch String:   'winpr/libwinpr/synch/wait.c:183,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:157,10'
              BranchSideFuncs:
                - waitpid
                - SleepEx
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - SetLastError
            - 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.2109
                - pollset_init
                - WLog_Print_dbg_tag.2108
                - SetLastError
                - pollset_add
                - WLog_Print_dbg_tag.2108
                - pollset_uninit
                - SetLastError
                - pollset_poll
                - pollset_isSignaled
                - pollset_uninit
                - winpr_Handle_cleanup
                - apc_executeCompletions
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - apc_collectFds
                - WLog_Print_dbg_tag.2108
                - WLog_Print_dbg_tag.2108
                - SetLastError
                - _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.2109
                - pollset_init
                - WLog_Print_dbg_tag.2108
                - SetLastError
                - pollset_add
                - WLog_Print_dbg_tag.2108
                - pollset_uninit
                - SetLastError
                - pollset_poll
                - pollset_isSignaled
                - pollset_uninit
                - winpr_Handle_cleanup
                - apc_executeCompletions
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - apc_collectFds
                - WLog_Print_dbg_tag.2108
                - WLog_Print_dbg_tag.2108
                - SetLastError
            - BranchSide:      'winpr/libwinpr/synch/wait.c:238,31'
              BranchSideFuncs:
                - winpr_Handle_getFd.2109
                - pollset_init
                - WLog_Print_dbg_tag.2108
                - SetLastError
                - pollset_add
                - WLog_Print_dbg_tag.2108
                - pollset_uninit
                - SetLastError
                - pollset_poll
                - pollset_isSignaled
                - pollset_uninit
                - winpr_Handle_cleanup
                - apc_executeCompletions
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - apc_collectFds
                - WLog_Print_dbg_tag.2108
                - WLog_Print_dbg_tag.2108
                - SetLastError
        - Branch String:   'winpr/libwinpr/synch/wait.c:222,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:226,9'
              BranchSideFuncs:
                - winpr_Handle_getFd.2109
                - pollset_init
                - WLog_Print_dbg_tag.2108
                - SetLastError
                - pollset_add
                - WLog_Print_dbg_tag.2108
                - pollset_uninit
                - SetLastError
                - pollset_poll
                - pollset_isSignaled
                - pollset_uninit
                - winpr_Handle_cleanup
                - apc_executeCompletions
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - apc_collectFds
                - WLog_Print_dbg_tag.2108
                - WLog_Print_dbg_tag.2108
                - SetLastError
            - BranchSide:      'winpr/libwinpr/synch/wait.c:234,16'
              BranchSideFuncs:
                - winpr_Handle_getFd.2109
                - pollset_init
                - WLog_Print_dbg_tag.2108
                - SetLastError
                - pollset_add
                - WLog_Print_dbg_tag.2108
                - pollset_uninit
                - SetLastError
                - pollset_poll
                - pollset_isSignaled
                - pollset_uninit
                - winpr_Handle_cleanup
                - apc_executeCompletions
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - apc_collectFds
                - WLog_Print_dbg_tag.2108
                - WLog_Print_dbg_tag.2108
                - SetLastError
        - Branch String:   'winpr/libwinpr/synch/wait.c:226,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:227,17'
              BranchSideFuncs:
                - winpr_Handle_getFd.2109
                - pollset_init
                - WLog_Print_dbg_tag.2108
                - SetLastError
                - pollset_add
                - WLog_Print_dbg_tag.2108
                - pollset_uninit
                - SetLastError
                - pollset_poll
                - pollset_isSignaled
                - pollset_uninit
                - winpr_Handle_cleanup
                - apc_executeCompletions
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - apc_collectFds
                - WLog_Print_dbg_tag.2108
                - WLog_Print_dbg_tag.2108
                - SetLastError
            - BranchSide:      'winpr/libwinpr/synch/wait.c:229,17'
              BranchSideFuncs:
                - winpr_Handle_getFd.2109
                - pollset_init
                - WLog_Print_dbg_tag.2108
                - SetLastError
                - pollset_add
                - WLog_Print_dbg_tag.2108
                - pollset_uninit
                - SetLastError
                - pollset_poll
                - pollset_isSignaled
                - pollset_uninit
                - winpr_Handle_cleanup
                - apc_executeCompletions
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - apc_collectFds
                - WLog_Print_dbg_tag.2108
                - WLog_Print_dbg_tag.2108
                - SetLastError
        - Branch String:   'winpr/libwinpr/synch/wait.c:239,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:241,4'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2108
                - SetLastError
            - BranchSide:      'winpr/libwinpr/synch/wait.c:246,35'
              BranchSideFuncs:
                - pollset_init
                - WLog_Print_dbg_tag.2108
                - SetLastError
                - pollset_add
                - WLog_Print_dbg_tag.2108
                - pollset_uninit
                - SetLastError
                - pollset_poll
                - pollset_isSignaled
                - pollset_uninit
                - winpr_Handle_cleanup
                - apc_executeCompletions
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - apc_collectFds
                - WLog_Print_dbg_tag.2108
        - Branch String:   'winpr/libwinpr/synch/wait.c:246,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:248,4'
              BranchSideFuncs:
                - pollset_add
                - WLog_Print_dbg_tag.2108
                - pollset_uninit
                - SetLastError
                - pollset_poll
                - pollset_isSignaled
                - pollset_uninit
                - winpr_Handle_cleanup
                - apc_executeCompletions
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - apc_collectFds
                - WLog_Print_dbg_tag.2108
            - BranchSide:      'winpr/libwinpr/synch/wait.c:253,30'
              BranchSideFuncs:
                - pollset_add
                - WLog_Print_dbg_tag.2108
                - pollset_uninit
                - SetLastError
                - pollset_poll
                - pollset_isSignaled
                - pollset_uninit
                - winpr_Handle_cleanup
                - apc_executeCompletions
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - apc_collectFds
                - WLog_Print_dbg_tag.2108
        - 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
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - pollset_uninit
                - SetLastError
                - apc_collectFds
                - WLog_Print_dbg_tag.2108
            - BranchSide:      'winpr/libwinpr/synch/wait.c:259,7'
              BranchSideFuncs:
                - pollset_poll
                - pollset_isSignaled
                - pollset_uninit
                - winpr_Handle_cleanup
                - apc_executeCompletions
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - pollset_uninit
                - SetLastError
                - apc_collectFds
                - WLog_Print_dbg_tag.2108
        - Branch String:   'winpr/libwinpr/synch/wait.c:259,18'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:259,37'
              BranchSideFuncs:
                - apc_collectFds
                - WLog_Print_dbg_tag.2108
                - pollset_uninit
                - SetLastError
                - pollset_poll
                - pollset_isSignaled
                - pollset_uninit
                - winpr_Handle_cleanup
                - apc_executeCompletions
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
            - BranchSide:      'winpr/libwinpr/synch/wait.c:265,8'
              BranchSideFuncs:
                - pollset_poll
                - pollset_isSignaled
                - pollset_uninit
                - winpr_Handle_cleanup
                - apc_executeCompletions
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - pollset_uninit
                - SetLastError
        - 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
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - pollset_uninit
                - SetLastError
            - BranchSide:      'winpr/libwinpr/synch/wait.c:265,8'
              BranchSideFuncs:
                - pollset_poll
                - pollset_isSignaled
                - pollset_uninit
                - winpr_Handle_cleanup
                - apc_executeCompletions
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - 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:
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - pollset_uninit
                - SetLastError
            - 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: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_Print_dbg_tag
        - 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:             __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_Print_dbg_tag
        - 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_Print_dbg_tag
        - 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_Print_dbg_tag
        - 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_Print_dbg_tag
        - Src:             'winpr/libwinpr/synch/wait.c:259,22'
          Dst:             apc_collectFds
        - Src:             'winpr/libwinpr/synch/wait.c:261,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/synch/wait.c:267,13'
          Dst:             pollset_poll
        - 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_Print_dbg_tag
        - 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:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 216
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - tag
        - log_level
        - line
        - file
        - fkt
      BBCount:         9
      ICount:          67
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintMessageVA
      functionUses:    16
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/wlog.h:206,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/wlog.h:207,30'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessageVA
            - BranchSide:      'winpr/include/winpr/wlog.h:209,26'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessageVA
        - Branch String:   'winpr/include/winpr/wlog.h:209,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/wlog.h:209,7'
              BranchSideFuncs:
                - WLog_PrintMessageVA
            - BranchSide:      'winpr/include/winpr/wlog.h:212,4'
              BranchSideFuncs:
                - WLog_PrintMessageVA
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:207,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:209,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:213,4'
          Dst:             WLog_PrintMessageVA
    - 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,20'
          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:         96
      ICount:          598
      EdgeCount:       129
      CyclomaticComplexity: 35
      functionsReached:
        - SetLastError
        - WLog_Print_dbg_tag
        - __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_Print_dbg_tag.2108
                - winpr_GetTickCount64
                - pollset_poll
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - pollset_uninit
                - pollset_init
                - WLog_Print_dbg_tag.2108
                - SetLastError
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Print_dbg_tag.2108
                - apc_executeCompletions
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - apc_collectFds
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_GetInfo.2104
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_getFd.2109
                - pollset_add
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_GetCurrentThread
                - WLog_Print_dbg_tag.2108
            - BranchSide:      'winpr/libwinpr/synch/wait.c:321,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2108
        - Branch String:   'winpr/libwinpr/synch/wait.c:319,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:321,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2108
            - BranchSide:      'winpr/libwinpr/synch/wait.c:325,6'
              BranchSideFuncs:
                - pollset_init
                - WLog_Print_dbg_tag.2108
                - winpr_GetTickCount64
                - pollset_poll
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - pollset_uninit
                - pollset_init
                - WLog_Print_dbg_tag.2108
                - SetLastError
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Print_dbg_tag.2108
                - apc_executeCompletions
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - apc_collectFds
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_GetInfo.2104
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_getFd.2109
                - pollset_add
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_GetCurrentThread
        - 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_Print_dbg_tag.2108
                - winpr_GetTickCount64
                - pollset_poll
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - pollset_uninit
                - pollset_init
                - WLog_Print_dbg_tag.2108
                - SetLastError
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Print_dbg_tag.2108
                - apc_executeCompletions
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - apc_collectFds
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_GetInfo.2104
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_getFd.2109
                - pollset_add
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
            - BranchSide:      'winpr/libwinpr/synch/wait.c:344,30'
              BranchSideFuncs:
                - pollset_init
                - WLog_Print_dbg_tag.2108
                - winpr_GetTickCount64
                - pollset_poll
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - pollset_uninit
                - pollset_init
                - WLog_Print_dbg_tag.2108
                - SetLastError
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Print_dbg_tag.2108
                - apc_executeCompletions
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - apc_collectFds
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_GetInfo.2104
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_getFd.2109
                - pollset_add
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
        - Branch String:   'winpr/libwinpr/synch/wait.c:328,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:332,8'
              BranchSideFuncs:
                - pollset_init
                - WLog_Print_dbg_tag.2108
                - winpr_GetTickCount64
                - pollset_poll
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - pollset_uninit
                - pollset_init
                - WLog_Print_dbg_tag.2108
                - SetLastError
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Print_dbg_tag.2108
                - apc_executeCompletions
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - apc_collectFds
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_GetInfo.2104
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_getFd.2109
                - pollset_add
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
            - BranchSide:      'winpr/libwinpr/synch/wait.c:340,15'
              BranchSideFuncs:
                - pollset_init
                - WLog_Print_dbg_tag.2108
                - winpr_GetTickCount64
                - pollset_poll
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - pollset_uninit
                - pollset_init
                - WLog_Print_dbg_tag.2108
                - SetLastError
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Print_dbg_tag.2108
                - apc_executeCompletions
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - apc_collectFds
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_GetInfo.2104
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_getFd.2109
                - pollset_add
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
        - Branch String:   'winpr/libwinpr/synch/wait.c:332,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:333,16'
              BranchSideFuncs:
                - pollset_init
                - WLog_Print_dbg_tag.2108
                - winpr_GetTickCount64
                - pollset_poll
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - pollset_uninit
                - pollset_init
                - WLog_Print_dbg_tag.2108
                - SetLastError
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Print_dbg_tag.2108
                - apc_executeCompletions
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - apc_collectFds
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_GetInfo.2104
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_getFd.2109
                - pollset_add
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
            - BranchSide:      'winpr/libwinpr/synch/wait.c:335,16'
              BranchSideFuncs:
                - pollset_init
                - WLog_Print_dbg_tag.2108
                - winpr_GetTickCount64
                - pollset_poll
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - pollset_uninit
                - pollset_init
                - WLog_Print_dbg_tag.2108
                - SetLastError
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Print_dbg_tag.2108
                - apc_executeCompletions
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - apc_collectFds
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_GetInfo.2104
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_getFd.2109
                - pollset_add
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
        - 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_Print_dbg_tag.2108
                - SetLastError
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Print_dbg_tag.2108
                - apc_executeCompletions
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - apc_collectFds
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_GetInfo.2104
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_getFd.2109
                - pollset_add
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
            - BranchSide:      'winpr/libwinpr/synch/wait.c:351,12'
              BranchSideFuncs:
                - winpr_GetTickCount64
                - pollset_poll
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - pollset_uninit
                - pollset_init
                - WLog_Print_dbg_tag.2108
                - SetLastError
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Print_dbg_tag.2108
                - apc_executeCompletions
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - apc_collectFds
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_GetInfo.2104
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_getFd.2109
                - pollset_add
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
        - 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_Print_dbg_tag.2108
                - SetLastError
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Print_dbg_tag.2108
                - apc_executeCompletions
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - apc_collectFds
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_GetInfo.2104
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_getFd.2109
                - pollset_add
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
            - BranchSide:      'winpr/libwinpr/synch/wait.c:357,11'
              BranchSideFuncs:
                - pollset_poll
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - pollset_uninit
                - pollset_init
                - WLog_Print_dbg_tag.2108
                - SetLastError
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Print_dbg_tag.2108
                - apc_executeCompletions
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - apc_collectFds
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_GetInfo.2104
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_getFd.2109
                - pollset_add
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
        - Branch String:   'winpr/libwinpr/synch/wait.c:366,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:368,8'
              BranchSideFuncs:
                - winpr_Handle_GetInfo.2104
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - pollset_uninit
                - winpr_Handle_getFd.2109
                - pollset_add
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - pollset_poll
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - pollset_init
                - WLog_Print_dbg_tag.2108
                - SetLastError
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Print_dbg_tag.2108
                - apc_executeCompletions
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - apc_collectFds
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
            - BranchSide:      'winpr/libwinpr/synch/wait.c:405,7'
              BranchSideFuncs:
                - pollset_poll
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - winpr_Handle_GetInfo.2104
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_getFd.2109
                - pollset_add
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - pollset_uninit
                - pollset_init
                - WLog_Print_dbg_tag.2108
                - SetLastError
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Print_dbg_tag.2108
                - apc_executeCompletions
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - apc_collectFds
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
        - Branch String:   'winpr/libwinpr/synch/wait.c:368,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:370,27'
              BranchSideFuncs:
                - winpr_Handle_GetInfo.2104
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - pollset_uninit
                - winpr_Handle_getFd.2109
                - pollset_add
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - pollset_poll
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - pollset_init
                - WLog_Print_dbg_tag.2108
                - SetLastError
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Print_dbg_tag.2108
                - apc_executeCompletions
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - apc_collectFds
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
            - BranchSide:      'winpr/libwinpr/synch/wait.c:376,30'
              BranchSideFuncs:
                - winpr_Handle_GetInfo.2104
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - pollset_uninit
                - winpr_Handle_getFd.2109
                - pollset_add
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - pollset_poll
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - pollset_init
                - WLog_Print_dbg_tag.2108
                - SetLastError
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Print_dbg_tag.2108
                - apc_executeCompletions
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - apc_collectFds
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
        - 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_Print_dbg_tag.2108
                - SetLastError
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Print_dbg_tag.2108
                - apc_executeCompletions
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - apc_collectFds
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_GetInfo.2104
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_getFd.2109
                - pollset_add
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
            - BranchSide:      'winpr/libwinpr/synch/wait.c:373,24'
              BranchSideFuncs:
                - winpr_Handle_GetInfo.2104
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - pollset_uninit
                - winpr_Handle_getFd.2109
                - pollset_add
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - pollset_poll
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - pollset_init
                - WLog_Print_dbg_tag.2108
                - SetLastError
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Print_dbg_tag.2108
                - apc_executeCompletions
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - apc_collectFds
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
        - Branch String:   'winpr/libwinpr/synch/wait.c:376,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:378,5'
              BranchSideFuncs:
                - winpr_Handle_getFd.2109
                - pollset_add
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - pollset_uninit
                - pollset_poll
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - pollset_init
                - WLog_Print_dbg_tag.2108
                - SetLastError
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Print_dbg_tag.2108
                - apc_executeCompletions
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - apc_collectFds
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_GetInfo.2104
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
            - BranchSide:      'winpr/libwinpr/synch/wait.c:384,28'
              BranchSideFuncs:
                - winpr_Handle_getFd.2109
                - pollset_add
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - pollset_uninit
                - pollset_poll
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - pollset_init
                - WLog_Print_dbg_tag.2108
                - SetLastError
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Print_dbg_tag.2108
                - apc_executeCompletions
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - apc_collectFds
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_GetInfo.2104
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
        - Branch String:   'winpr/libwinpr/synch/wait.c:385,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:387,5'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - pollset_uninit
            - BranchSide:      'winpr/libwinpr/synch/wait.c:393,31'
              BranchSideFuncs:
                - pollset_add
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - pollset_uninit
                - pollset_poll
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - pollset_init
                - WLog_Print_dbg_tag.2108
                - SetLastError
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Print_dbg_tag.2108
                - apc_executeCompletions
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - apc_collectFds
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_GetInfo.2104
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_getFd.2109
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
        - 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_Print_dbg_tag.2108
                - SetLastError
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Print_dbg_tag.2108
                - apc_executeCompletions
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - apc_collectFds
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_GetInfo.2104
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_getFd.2109
                - pollset_add
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
            - BranchSide:      'winpr/libwinpr/synch/wait.c:401,10'
              BranchSideFuncs:
                - pollset_poll
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - pollset_uninit
                - pollset_init
                - WLog_Print_dbg_tag.2108
                - SetLastError
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Print_dbg_tag.2108
                - apc_executeCompletions
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - apc_collectFds
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_GetInfo.2104
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_getFd.2109
                - pollset_add
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
        - Branch String:   'winpr/libwinpr/synch/wait.c:405,18'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:405,37'
              BranchSideFuncs:
                - apc_collectFds
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - pollset_uninit
                - pollset_poll
                - pollset_reset
                - winpr_GetTickCount64
                - winpr_Handle_GetInfo.2104
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_getFd.2109
                - pollset_add
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - pollset_uninit
                - pollset_init
                - WLog_Print_dbg_tag.2108
                - SetLastError
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Print_dbg_tag.2108
                - apc_executeCompletions
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
            - BranchSide:      'winpr/libwinpr/synch/wait.c:414,10'
              BranchSideFuncs:
                - pollset_poll
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - apc_collectFds
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_GetInfo.2104
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_getFd.2109
                - pollset_add
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - pollset_uninit
                - pollset_init
                - WLog_Print_dbg_tag.2108
                - SetLastError
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Print_dbg_tag.2108
                - apc_executeCompletions
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
        - 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_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_GetInfo.2104
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_getFd.2109
                - pollset_add
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - pollset_uninit
                - pollset_init
                - WLog_Print_dbg_tag.2108
                - SetLastError
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Print_dbg_tag.2108
                - apc_executeCompletions
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
            - BranchSide:      'winpr/libwinpr/synch/wait.c:414,10'
              BranchSideFuncs:
                - pollset_poll
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - apc_collectFds
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_GetInfo.2104
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_getFd.2109
                - pollset_add
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - pollset_uninit
                - pollset_init
                - WLog_Print_dbg_tag.2108
                - SetLastError
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Print_dbg_tag.2108
                - apc_executeCompletions
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
        - 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
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - apc_collectFds
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_GetInfo.2104
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_getFd.2109
                - pollset_add
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - pollset_uninit
                - pollset_init
                - WLog_Print_dbg_tag.2108
                - SetLastError
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Print_dbg_tag.2108
                - apc_executeCompletions
            - BranchSide:      'winpr/libwinpr/synch/wait.c:442,7'
              BranchSideFuncs:
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - pollset_poll
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - apc_collectFds
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_GetInfo.2104
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_getFd.2109
                - pollset_add
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - pollset_uninit
                - pollset_init
                - WLog_Print_dbg_tag.2108
                - SetLastError
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Print_dbg_tag.2108
                - 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_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_GetInfo.2104
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_getFd.2109
                - pollset_add
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - pollset_uninit
                - pollset_init
                - WLog_Print_dbg_tag.2108
                - SetLastError
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Print_dbg_tag.2108
                - apc_executeCompletions
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
            - BranchSide:      'winpr/libwinpr/synch/wait.c:422,24'
              BranchSideFuncs:
                - pollset_poll
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - apc_collectFds
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_GetInfo.2104
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_getFd.2109
                - pollset_add
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - pollset_uninit
                - pollset_init
                - WLog_Print_dbg_tag.2108
                - SetLastError
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Print_dbg_tag.2108
                - apc_executeCompletions
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
        - Branch String:   'winpr/libwinpr/synch/wait.c:425,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:427,10'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - pollset_uninit
            - BranchSide:      'winpr/libwinpr/synch/wait.c:439,3'
              BranchSideFuncs:
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - pollset_poll
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - apc_collectFds
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_GetInfo.2104
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_getFd.2109
                - pollset_add
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - pollset_uninit
                - pollset_init
                - WLog_Print_dbg_tag.2108
                - SetLastError
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Print_dbg_tag.2108
                - apc_executeCompletions
        - 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
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - apc_collectFds
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_GetInfo.2104
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_getFd.2109
                - pollset_add
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - pollset_uninit
                - pollset_init
                - WLog_Print_dbg_tag.2108
                - SetLastError
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Print_dbg_tag.2108
            - BranchSide:      'winpr/libwinpr/synch/wait.c:449,7'
              BranchSideFuncs:
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - pollset_poll
                - apc_executeCompletions
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - apc_collectFds
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_GetInfo.2104
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_getFd.2109
                - pollset_add
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - pollset_uninit
                - pollset_init
                - WLog_Print_dbg_tag.2108
                - SetLastError
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Print_dbg_tag.2108
        - 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
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - apc_collectFds
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_GetInfo.2104
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_getFd.2109
                - pollset_add
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - pollset_uninit
                - pollset_init
                - WLog_Print_dbg_tag.2108
                - SetLastError
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Print_dbg_tag.2108
        - 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
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - apc_collectFds
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_GetInfo.2104
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_getFd.2109
                - pollset_add
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - pollset_uninit
                - pollset_init
                - WLog_Print_dbg_tag.2108
                - SetLastError
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Print_dbg_tag.2108
            - BranchSide:      'winpr/libwinpr/synch/wait.c:499,7'
              BranchSideFuncs:
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - pollset_poll
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Print_dbg_tag.2108
                - apc_executeCompletions
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - apc_collectFds
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_GetInfo.2104
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_getFd.2109
                - pollset_add
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - pollset_uninit
                - pollset_init
                - WLog_Print_dbg_tag.2108
                - SetLastError
        - 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
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - apc_collectFds
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_GetInfo.2104
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_getFd.2109
                - pollset_add
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - pollset_uninit
                - pollset_init
                - WLog_Print_dbg_tag.2108
                - SetLastError
                - winpr_Handle_cleanup
                - WLog_Print_dbg_tag.2108
            - BranchSide:      'winpr/libwinpr/synch/wait.c:497,3'
              BranchSideFuncs:
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - pollset_poll
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Print_dbg_tag.2108
                - apc_executeCompletions
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - apc_collectFds
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_GetInfo.2104
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_getFd.2109
                - pollset_add
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - pollset_uninit
                - pollset_init
                - WLog_Print_dbg_tag.2108
                - SetLastError
        - 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
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - apc_collectFds
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_GetInfo.2104
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_getFd.2109
                - pollset_add
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - pollset_uninit
                - pollset_init
                - WLog_Print_dbg_tag.2108
                - SetLastError
                - winpr_Handle_cleanup
                - WLog_Print_dbg_tag.2108
            - BranchSide:      'winpr/libwinpr/synch/wait.c:459,21'
              BranchSideFuncs:
                - pollset_isSignaled
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - pollset_poll
                - apc_executeCompletions
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - apc_collectFds
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_GetInfo.2104
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_getFd.2109
                - pollset_add
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - pollset_uninit
                - pollset_init
                - WLog_Print_dbg_tag.2108
                - SetLastError
                - winpr_Handle_cleanup
                - WLog_Print_dbg_tag.2108
        - 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
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - apc_collectFds
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_GetInfo.2104
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_getFd.2109
                - pollset_add
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - pollset_uninit
                - pollset_init
                - WLog_Print_dbg_tag.2108
                - SetLastError
                - pollset_isSignaled
                - WLog_Print_dbg_tag.2108
            - BranchSide:      'winpr/libwinpr/synch/wait.c:496,4'
              BranchSideFuncs:
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - pollset_poll
                - apc_executeCompletions
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - apc_collectFds
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_GetInfo.2104
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_getFd.2109
                - pollset_add
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - pollset_uninit
                - pollset_init
                - WLog_Print_dbg_tag.2108
                - SetLastError
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Print_dbg_tag.2108
        - Branch String:   'winpr/libwinpr/synch/wait.c:465,10'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:467,7'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2108
                - pollset_uninit
            - BranchSide:      'winpr/libwinpr/synch/wait.c:473,10'
              BranchSideFuncs:
                - pollset_uninit
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_poll
                - apc_executeCompletions
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - apc_collectFds
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_GetInfo.2104
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_getFd.2109
                - pollset_add
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - pollset_uninit
                - pollset_init
                - WLog_Print_dbg_tag.2108
                - SetLastError
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Print_dbg_tag.2108
        - 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
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - apc_collectFds
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_GetInfo.2104
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_getFd.2109
                - pollset_add
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - pollset_uninit
                - pollset_init
                - WLog_Print_dbg_tag.2108
                - SetLastError
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Print_dbg_tag.2108
            - 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
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - apc_collectFds
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_GetInfo.2104
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_getFd.2109
                - pollset_add
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - pollset_uninit
                - pollset_init
                - WLog_Print_dbg_tag.2108
                - SetLastError
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Print_dbg_tag.2108
            - BranchSide:      'winpr/libwinpr/synch/wait.c:483,6'
              BranchSideFuncs:
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - pollset_poll
                - apc_executeCompletions
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - apc_collectFds
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_GetInfo.2104
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_getFd.2109
                - pollset_add
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - pollset_uninit
                - pollset_init
                - WLog_Print_dbg_tag.2108
                - SetLastError
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Print_dbg_tag.2108
        - 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
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - apc_collectFds
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_GetInfo.2104
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_getFd.2109
                - pollset_add
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - pollset_uninit
                - pollset_init
                - WLog_Print_dbg_tag.2108
                - SetLastError
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Print_dbg_tag.2108
            - BranchSide:      'winpr/libwinpr/synch/wait.c:482,7'
              BranchSideFuncs:
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - pollset_poll
                - apc_executeCompletions
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - apc_collectFds
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_GetInfo.2104
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_getFd.2109
                - pollset_add
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - pollset_uninit
                - pollset_init
                - WLog_Print_dbg_tag.2108
                - SetLastError
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Print_dbg_tag.2108
        - 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
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - apc_collectFds
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_GetInfo.2104
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_getFd.2109
                - pollset_add
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - pollset_uninit
                - pollset_init
                - WLog_Print_dbg_tag.2108
                - SetLastError
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Print_dbg_tag.2108
        - 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_Print_dbg_tag.2108
                - apc_executeCompletions
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - apc_collectFds
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_GetInfo.2104
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_getFd.2109
                - pollset_add
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - pollset_uninit
                - pollset_init
                - WLog_Print_dbg_tag.2108
                - SetLastError
            - BranchSide:      'winpr/libwinpr/synch/wait.c:511,4'
              BranchSideFuncs:
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - pollset_poll
                - pollset_uninit
                - pollset_init
                - WLog_Print_dbg_tag.2108
                - SetLastError
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Print_dbg_tag.2108
                - apc_executeCompletions
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - apc_collectFds
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_GetInfo.2104
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_getFd.2109
                - pollset_add
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
        - 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_Print_dbg_tag.2108
                - SetLastError
                - winpr_GetTickCount64
                - pollset_uninit
                - pollset_poll
                - pollset_reset
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Print_dbg_tag.2108
                - apc_executeCompletions
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - apc_collectFds
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_GetInfo.2104
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_getFd.2109
                - pollset_add
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
            - BranchSide:      'winpr/libwinpr/synch/wait.c:511,4'
              BranchSideFuncs:
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - pollset_poll
                - pollset_uninit
                - pollset_init
                - WLog_Print_dbg_tag.2108
                - SetLastError
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Print_dbg_tag.2108
                - apc_executeCompletions
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - apc_collectFds
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_GetInfo.2104
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_getFd.2109
                - pollset_add
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
        - 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_Print_dbg_tag.2108
                - SetLastError
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Print_dbg_tag.2108
                - apc_executeCompletions
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - apc_collectFds
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_GetInfo.2104
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_getFd.2109
                - pollset_add
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
            - BranchSide:      'winpr/libwinpr/synch/wait.c:509,3'
              BranchSideFuncs:
                - winpr_GetTickCount64
                - pollset_uninit
                - pollset_poll
                - pollset_reset
                - pollset_uninit
                - pollset_init
                - WLog_Print_dbg_tag.2108
                - SetLastError
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Print_dbg_tag.2108
                - apc_executeCompletions
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - apc_collectFds
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_GetInfo.2104
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_getFd.2109
                - pollset_add
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - 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_Print_dbg_tag.2108
                - SetLastError
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Print_dbg_tag.2108
                - apc_executeCompletions
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - apc_collectFds
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_GetInfo.2104
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - winpr_Handle_getFd.2109
                - pollset_add
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
                - WLog_Print_dbg_tag.2108
                - winpr_log_backtrace
                - SetLastError
            - BranchSide:      'winpr/libwinpr/synch/wait.c:516,6'
              BranchSideFuncs:
                - pollset_uninit
      Callsites:
        - Src:             'winpr/libwinpr/synch/wait.c:321,3'
          Dst:             WLog_Print_dbg_tag
        - 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_Print_dbg_tag
        - 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_Print_dbg_tag
        - 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_Print_dbg_tag
        - 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_Print_dbg_tag
        - 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_Print_dbg_tag
        - 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:             __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_Print_dbg_tag
        - 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_Print_dbg_tag
        - 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_Print_dbg_tag
        - 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: 567
      functionLinenumberEnd: 569
      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:568,2'
          Dst:             winpr_str_append
    - functionName:    UnixChangeFileMode
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1321
      functionLinenumberEnd: 1354
      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:1322,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:1323,3'
              BranchSideFuncs:
                - chmod
            - BranchSide:      'winpr/libwinpr/file/generic.c:1325,9'
              BranchSideFuncs:
                - chmod
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:1338,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: 1312
      functionLinenumberEnd: 1313
      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:1313,9'
          Dst:             MoveFileExW
    - functionName:    MoveFileExW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1285
      functionLinenumberEnd: 1304
      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
        - SetLastError
        - winpr_MoveFileEx
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/generic.c:1286,26'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:1286,30'
              BranchSideFuncs:
                - ConvertWCharToUtf8Alloc
                - ConvertWCharToUtf8Alloc
                - SetLastError
                - free
                - free
                - winpr_MoveFileEx
            - BranchSide:      'winpr/libwinpr/file/generic.c:1287,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/generic.c:1286,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:1287,3'
              BranchSideFuncs:
                - ConvertWCharToUtf8Alloc
                - ConvertWCharToUtf8Alloc
                - SetLastError
                - free
                - free
                - winpr_MoveFileEx
            - BranchSide:      'winpr/libwinpr/file/generic.c:1289,54'
              BranchSideFuncs:
                - ConvertWCharToUtf8Alloc
                - ConvertWCharToUtf8Alloc
                - SetLastError
                - free
                - free
                - winpr_MoveFileEx
        - Branch String:   'winpr/libwinpr/file/generic.c:1293,27'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:1293,31'
              BranchSideFuncs:
                - SetLastError
                - free
                - free
                - winpr_MoveFileEx
            - BranchSide:      'winpr/libwinpr/file/generic.c:1295,3'
              BranchSideFuncs:
                - SetLastError
                - free
                - free
        - Branch String:   'winpr/libwinpr/file/generic.c:1293,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:1295,3'
              BranchSideFuncs:
                - winpr_MoveFileEx
                - free
                - free
            - BranchSide:      'winpr/libwinpr/file/generic.c:1299,25'
              BranchSideFuncs:
                - winpr_MoveFileEx
                - free
                - free
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:1289,30'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/file/generic.c:1290,25'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/file/generic.c:1295,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/generic.c:1299,8'
          Dst:             winpr_MoveFileEx
    - functionName:    MoveFileA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1307
      functionLinenumberEnd: 1308
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpExistingFileName
        - lpNewFileName
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_MoveFileEx
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:1308,9'
          Dst:             winpr_MoveFileEx
    - functionName:    MoveFileExA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1280
      functionLinenumberEnd: 1281
      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:
        - winpr_MoveFileEx
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:1281,9'
          Dst:             winpr_MoveFileEx
    - functionName:    RemoveDirectoryW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1261
      functionLinenumberEnd: 1277
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpPathName
      BBCount:         9
      ICount:          53
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ConvertWCharToUtf8Alloc
        - SetLastError
        - winpr_RemoveDirectory
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/generic.c:1262,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:1263,3'
              BranchSideFuncs:
                - ConvertWCharToUtf8Alloc
                - SetLastError
                - free
                - winpr_RemoveDirectory
            - BranchSide:      'winpr/libwinpr/file/generic.c:1264,46'
              BranchSideFuncs:
                - ConvertWCharToUtf8Alloc
                - SetLastError
                - free
                - winpr_RemoveDirectory
        - Branch String:   'winpr/libwinpr/file/generic.c:1267,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:1269,3'
              BranchSideFuncs:
                - winpr_RemoveDirectory
                - free
            - BranchSide:      'winpr/libwinpr/file/generic.c:1273,30'
              BranchSideFuncs:
                - winpr_RemoveDirectory
                - free
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:1264,22'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/file/generic.c:1269,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/generic.c:1273,8'
          Dst:             winpr_RemoveDirectory
    - functionName:    RemoveDirectoryA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1256
      functionLinenumberEnd: 1257
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpPathName
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_RemoveDirectory
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:1257,9'
          Dst:             winpr_RemoveDirectory
    - functionName:    CreateDirectoryW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1237
      functionLinenumberEnd: 1253
      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:1238,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:1239,3'
              BranchSideFuncs:
                - ConvertWCharToUtf8Alloc
                - SetLastError
                - free
                - CreateDirectoryA
            - BranchSide:      'winpr/libwinpr/file/generic.c:1240,46'
              BranchSideFuncs:
                - ConvertWCharToUtf8Alloc
                - SetLastError
                - free
                - CreateDirectoryA
        - Branch String:   'winpr/libwinpr/file/generic.c:1243,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:1245,3'
              BranchSideFuncs:
                - CreateDirectoryA
                - free
            - BranchSide:      'winpr/libwinpr/file/generic.c:1249,25'
              BranchSideFuncs:
                - CreateDirectoryA
                - free
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:1240,22'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/file/generic.c:1245,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/generic.c:1249,8'
          Dst:             CreateDirectoryA
    - functionName:    CreateDirectoryA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1229
      functionLinenumberEnd: 1234
      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:1230,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:1231,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:1233,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:1230,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: 1176
      functionLinenumberEnd: 1200
      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:1179,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:1181,3'
              BranchSideFuncs:
                - FindNextFileA
                - free
                - ConvertFindDataAToW
                - SetLastError
                - free
                - free
            - BranchSide:      'winpr/libwinpr/file/generic.c:1185,20'
              BranchSideFuncs:
                - FindNextFileA
                - free
                - ConvertFindDataAToW
                - SetLastError
                - free
                - free
        - Branch String:   'winpr/libwinpr/file/generic.c:1185,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:1187,28'
              BranchSideFuncs:
                - ConvertFindDataAToW
                - SetLastError
                - free
                - free
            - BranchSide:      'winpr/libwinpr/file/generic.c:1198,7'
              BranchSideFuncs:
                - free
        - Branch String:   'winpr/libwinpr/file/generic.c:1187,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:1189,4'
              BranchSideFuncs:
                - free
            - BranchSide:      'winpr/libwinpr/file/generic.c:1194,8'
              BranchSideFuncs:
                - free
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:1177,46'
          Dst:             calloc
        - Src:             'winpr/libwinpr/file/generic.c:1181,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/generic.c:1185,6'
          Dst:             FindNextFileA
        - Src:             'winpr/libwinpr/file/generic.c:1187,8'
          Dst:             ConvertFindDataAToW
        - Src:             'winpr/libwinpr/file/generic.c:1189,4'
          Dst:             SetLastError
    - functionName:    FindNextFileA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1111
      functionLinenumberEnd: 1173
      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:1124,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:1126,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:1171,2'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/file/generic.c:1126,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:1124,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:1128,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:1135,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:1137,5'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/generic.c:1141,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:1144,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:1145,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:1146,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:1150,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:1152,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:1159,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:1159,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:1161,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:1165,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:1124,20'
          Dst:             readdir64
        - Src:             'winpr/libwinpr/file/generic.c:1126,7'
          Dst:             FilePatternMatchA
        - Src:             'winpr/libwinpr/file/generic.c:1130,4'
          Dst:             strncpy
        - Src:             'winpr/libwinpr/file/generic.c:1131,27'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/file/generic.c:1132,21'
          Dst:             strlen
        - Src:             'winpr/libwinpr/file/generic.c:1137,5'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/generic.c:1150,8'
          Dst:             stat64
        - Src:             'winpr/libwinpr/file/generic.c:1153,32'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/generic.c:1153,18'
          Dst:             map_posix_err
        - Src:             'winpr/libwinpr/file/generic.c:1153,5'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/generic.c:1154,5'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/generic.c:1165,14'
          Dst:             FindDataFromStat
        - Src:             'winpr/libwinpr/file/generic.c:1171,2'
          Dst:             SetLastError
    - functionName:    ConvertFindDataAToW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1023
      functionLinenumberEnd: 1044
      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:1024,23'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:1024,27'
              BranchSideFuncs:
                - ConvertUtf8NToWChar
                - ConvertUtf8NToWChar
            - BranchSide:      'winpr/libwinpr/file/generic.c:1025,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/generic.c:1024,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:1025,3'
              BranchSideFuncs:
                - ConvertUtf8NToWChar
                - ConvertUtf8NToWChar
            - BranchSide:      'winpr/libwinpr/file/generic.c:1027,38'
              BranchSideFuncs:
                - ConvertUtf8NToWChar
                - ConvertUtf8NToWChar
        - Branch String:   'winpr/libwinpr/file/generic.c:1036,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:1038,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:1040,29'
              BranchSideFuncs:
                - ConvertUtf8NToWChar
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:1036,6'
          Dst:             ConvertUtf8NToWChar
        - Src:             'winpr/libwinpr/file/generic.c:1040,9'
          Dst:             ConvertUtf8NToWChar
    - functionName:    is_valid_file_search_handle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 928
      functionLinenumberEnd: 937
      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:930,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:931,3'
              BranchSideFuncs:
                - strncmp
            - BranchSide:      'winpr/libwinpr/file/generic.c:932,6'
              BranchSideFuncs:
                - strncmp
        - Branch String:   'winpr/libwinpr/file/generic.c:932,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:933,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:934,33'
              BranchSideFuncs:
                - strncmp
        - Branch String:   'winpr/libwinpr/file/generic.c:934,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:935,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:936,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:934,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:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    FindDataFromStat
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 940
      functionLinenumberEnd: 980
      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:945,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:946,3'
              BranchSideFuncs:
                - strrchr
                - strlen
            - BranchSide:      'winpr/libwinpr/file/generic.c:948,6'
              BranchSideFuncs:
                - strrchr
                - strlen
        - Branch String:   'winpr/libwinpr/file/generic.c:948,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:949,3'
              BranchSideFuncs:
                - strrchr
                - strlen
            - BranchSide:      'winpr/libwinpr/file/generic.c:951,20'
              BranchSideFuncs:
                - strrchr
                - strlen
        - Branch String:   'winpr/libwinpr/file/generic.c:953,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:955,22'
              BranchSideFuncs:
                - strlen
            - BranchSide:      'winpr/libwinpr/file/generic.c:962,8'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/generic.c:958,21'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:958,25'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:960,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/generic.c:958,41'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:958,45'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:960,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/generic.c:958,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:959,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:960,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/generic.c:962,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:962,6'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:963,3'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:951,12'
          Dst:             strrchr
        - Src:             'winpr/libwinpr/file/generic.c:956,26'
          Dst:             strlen
    - functionName:    FindFirstFileExW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1105
      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:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:1106,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 216
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - tag
        - log_level
        - line
        - file
        - fkt
      BBCount:         9
      ICount:          67
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintMessageVA
      functionUses:    20
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/wlog.h:206,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/wlog.h:207,30'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessageVA
            - BranchSide:      'winpr/include/winpr/wlog.h:209,26'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessageVA
        - Branch String:   'winpr/include/winpr/wlog.h:209,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/wlog.h:209,7'
              BranchSideFuncs:
                - WLog_PrintMessageVA
            - BranchSide:      'winpr/include/winpr/wlog.h:212,4'
              BranchSideFuncs:
                - WLog_PrintMessageVA
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:207,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:209,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:213,4'
          Dst:             WLog_PrintMessageVA
    - functionName:    FindFirstFileExA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1094
      functionLinenumberEnd: 1096
      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:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:1095,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    FindFirstFileW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1047
      functionLinenumberEnd: 1086
      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:1050,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:1051,3'
              BranchSideFuncs:
                - calloc
                - SetLastError
                - ConvertWCharToUtf8Alloc
                - SetLastError
                - free
                - FindFirstFileA
                - free
                - free
                - ConvertFindDataAToW
                - SetLastError
                - FindClose
            - BranchSide:      'winpr/libwinpr/file/generic.c:1053,46'
              BranchSideFuncs:
                - calloc
                - SetLastError
                - ConvertWCharToUtf8Alloc
                - SetLastError
                - free
                - FindFirstFileA
                - free
                - free
                - ConvertFindDataAToW
                - SetLastError
                - FindClose
        - Branch String:   'winpr/libwinpr/file/generic.c:1055,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:1057,3'
              BranchSideFuncs:
                - ConvertWCharToUtf8Alloc
                - SetLastError
                - free
                - FindFirstFileA
                - free
                - free
                - ConvertFindDataAToW
                - SetLastError
                - FindClose
            - BranchSide:      'winpr/libwinpr/file/generic.c:1061,40'
              BranchSideFuncs:
                - ConvertWCharToUtf8Alloc
                - SetLastError
                - free
                - FindFirstFileA
                - free
                - free
                - ConvertFindDataAToW
                - SetLastError
                - FindClose
        - Branch String:   'winpr/libwinpr/file/generic.c:1062,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:1064,3'
              BranchSideFuncs:
                - FindFirstFileA
                - free
                - free
                - ConvertFindDataAToW
                - SetLastError
                - FindClose
            - BranchSide:      'winpr/libwinpr/file/generic.c:1069,21'
              BranchSideFuncs:
                - FindFirstFileA
                - free
                - free
                - ConvertFindDataAToW
                - SetLastError
                - FindClose
        - Branch String:   'winpr/libwinpr/file/generic.c:1072,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:1072,11'
              BranchSideFuncs:
                - ConvertFindDataAToW
                - SetLastError
                - FindClose
                - free
            - BranchSide:      'winpr/libwinpr/file/generic.c:1074,28'
              BranchSideFuncs:
                - ConvertFindDataAToW
                - SetLastError
                - FindClose
                - free
        - Branch String:   'winpr/libwinpr/file/generic.c:1074,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:1076,4'
              BranchSideFuncs:
                - free
            - BranchSide:      'winpr/libwinpr/file/generic.c:1081,2'
              BranchSideFuncs:
                - free
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:1053,46'
          Dst:             calloc
        - Src:             'winpr/libwinpr/file/generic.c:1057,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/generic.c:1061,16'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/file/generic.c:1064,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/generic.c:1069,6'
          Dst:             FindFirstFileA
        - Src:             'winpr/libwinpr/file/generic.c:1074,8'
          Dst:             ConvertFindDataAToW
        - Src:             'winpr/libwinpr/file/generic.c:1076,4'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/generic.c:1077,4'
          Dst:             FindClose
    - functionName:    FindFirstFileA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 984
      functionLinenumberEnd: 1019
      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:985,22'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:985,26'
              BranchSideFuncs:
                - SetLastError
                - strlen
                - PathGetSeparatorA
                - strrchr
                - FindClose
                - strlen
                - file_search_new
                - SetLastError
                - FindNextFileA
            - BranchSide:      'winpr/libwinpr/file/generic.c:987,3'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/file/generic.c:985,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:987,3'
              BranchSideFuncs:
                - strlen
                - PathGetSeparatorA
                - strrchr
                - FindClose
                - strlen
                - file_search_new
                - SetLastError
                - FindNextFileA
            - BranchSide:      'winpr/libwinpr/file/generic.c:991,25'
              BranchSideFuncs:
                - strlen
                - PathGetSeparatorA
                - strrchr
                - FindClose
                - strlen
                - file_search_new
                - SetLastError
                - FindNextFileA
        - Branch String:   'winpr/libwinpr/file/generic.c:999,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:1000,3'
              BranchSideFuncs:
                - strlen
                - file_search_new
                - SetLastError
                - FindNextFileA
                - FindClose
            - BranchSide:      'winpr/libwinpr/file/generic.c:1001,22'
              BranchSideFuncs:
                - strlen
                - file_search_new
                - SetLastError
                - FindNextFileA
                - FindClose
        - Branch String:   'winpr/libwinpr/file/generic.c:1002,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:1003,3'
              BranchSideFuncs:
                - FindClose
            - BranchSide:      'winpr/libwinpr/file/generic.c:1005,32'
              BranchSideFuncs:
                - file_search_new
                - SetLastError
                - FindNextFileA
                - FindClose
        - Branch String:   'winpr/libwinpr/file/generic.c:1007,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:1009,3'
              BranchSideFuncs:
                - FindNextFileA
                - FindClose
            - BranchSide:      'winpr/libwinpr/file/generic.c:1013,28'
              BranchSideFuncs:
                - FindNextFileA
                - FindClose
        - Branch String:   'winpr/libwinpr/file/generic.c:1013,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:1013,55'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:1014,18'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:987,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/generic.c:996,22'
          Dst:             strlen
        - Src:             'winpr/libwinpr/file/generic.c:997,19'
          Dst:             PathGetSeparatorA
        - Src:             'winpr/libwinpr/file/generic.c:998,20'
          Dst:             strrchr
        - Src:             'winpr/libwinpr/file/generic.c:1001,15'
          Dst:             strlen
        - Src:             'winpr/libwinpr/file/generic.c:1005,16'
          Dst:             file_search_new
        - Src:             'winpr/libwinpr/file/generic.c:1009,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/generic.c:1013,6'
          Dst:             FindNextFileA
        - Src:             'winpr/libwinpr/file/generic.c:1017,2'
          Dst:             FindClose
    - functionName:    FindClose
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1203
      functionLinenumberEnd: 1225
      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:1205,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:1206,3'
              BranchSideFuncs:
                - is_valid_file_search_handle
                - free
                - free
                - free
                - closedir
            - BranchSide:      'winpr/libwinpr/file/generic.c:1212,35'
              BranchSideFuncs:
                - is_valid_file_search_handle
                - free
                - free
                - free
                - closedir
        - Branch String:   'winpr/libwinpr/file/generic.c:1212,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:1213,3'
              BranchSideFuncs:
                - free
                - free
                - free
                - closedir
            - BranchSide:      'winpr/libwinpr/file/generic.c:1216,7'
              BranchSideFuncs:
                - free
                - free
                - free
                - closedir
        - Branch String:   'winpr/libwinpr/file/generic.c:1219,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:1220,12'
              BranchSideFuncs:
                - closedir
                - free
            - BranchSide:      'winpr/libwinpr/file/generic.c:1223,7'
              BranchSideFuncs:
                - free
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:1212,7'
          Dst:             is_valid_file_search_handle
        - Src:             'winpr/libwinpr/file/generic.c:1220,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: 875
      functionLinenumberEnd: 925
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - name
        - namelen
        - pattern
        - patternlen
      BBCount:         36
      ICount:          199
      EdgeCount:       46
      CyclomaticComplexity: 12
      functionsReached:
        - FindClose
        - _strdup
        - calloc
        - closedir
        - opendir
        - stat64
        - strndup
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/generic.c:877,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:878,3'
              BranchSideFuncs:
                - strndup
                - strndup
                - FindClose
                - opendir
                - stat64
                - opendir
                - free
                - free
                - _strdup
                - _strdup
                - closedir
            - BranchSide:      'winpr/libwinpr/file/generic.c:879,2'
              BranchSideFuncs:
                - strndup
                - strndup
                - FindClose
                - opendir
                - stat64
                - opendir
                - free
                - free
                - _strdup
                - _strdup
                - closedir
        - Branch String:   'winpr/libwinpr/file/generic.c:884,27'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:884,31'
              BranchSideFuncs:
                - FindClose
                - opendir
                - stat64
                - opendir
                - free
                - free
                - _strdup
                - _strdup
                - closedir
            - BranchSide:      'winpr/libwinpr/file/generic.c:885,3'
              BranchSideFuncs:
                - FindClose
        - Branch String:   'winpr/libwinpr/file/generic.c:884,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:885,3'
              BranchSideFuncs:
                - opendir
                - stat64
                - FindClose
                - opendir
                - free
                - free
                - _strdup
                - _strdup
                - closedir
            - BranchSide:      'winpr/libwinpr/file/generic.c:887,30'
              BranchSideFuncs:
                - opendir
                - stat64
                - FindClose
                - opendir
                - free
                - free
                - _strdup
                - _strdup
                - closedir
        - Branch String:   'winpr/libwinpr/file/generic.c:888,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:894,15'
              BranchSideFuncs:
                - FindClose
            - BranchSide:      'winpr/libwinpr/file/generic.c:915,7'
              BranchSideFuncs:
                - FindClose
        - Branch String:   'winpr/libwinpr/file/generic.c:895,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:897,8'
              BranchSideFuncs:
                - FindClose
                - opendir
                - free
                - free
                - _strdup
                - _strdup
                - closedir
            - BranchSide:      'winpr/libwinpr/file/generic.c:914,2'
              BranchSideFuncs:
                - FindClose
        - Branch String:   'winpr/libwinpr/file/generic.c:897,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:899,33'
              BranchSideFuncs:
                - opendir
                - FindClose
                - free
                - free
                - _strdup
                - _strdup
                - closedir
            - BranchSide:      'winpr/libwinpr/file/generic.c:913,3'
              BranchSideFuncs:
                - FindClose
        - Branch String:   'winpr/libwinpr/file/generic.c:900,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:902,11'
              BranchSideFuncs:
                - free
                - free
                - _strdup
                - _strdup
                - closedir
                - FindClose
            - BranchSide:      'winpr/libwinpr/file/generic.c:912,4'
              BranchSideFuncs:
                - FindClose
        - Branch String:   'winpr/libwinpr/file/generic.c:906,31'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:906,35'
              BranchSideFuncs:
                - closedir
                - FindClose
            - BranchSide:      'winpr/libwinpr/file/generic.c:908,16'
              BranchSideFuncs:
                - closedir
                - FindClose
        - Branch String:   'winpr/libwinpr/file/generic.c:906,10'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:908,16'
              BranchSideFuncs:
                - FindClose
            - BranchSide:      'winpr/libwinpr/file/generic.c:911,5'
              BranchSideFuncs:
                - FindClose
        - Branch String:   'winpr/libwinpr/file/generic.c:915,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:916,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:918,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:876,55'
          Dst:             calloc
        - Src:             'winpr/libwinpr/file/generic.c:882,24'
          Dst:             strndup
        - Src:             'winpr/libwinpr/file/generic.c:883,27'
          Dst:             strndup
        - Src:             'winpr/libwinpr/file/generic.c:887,22'
          Dst:             opendir
        - Src:             'winpr/libwinpr/file/generic.c:895,7'
          Dst:             stat64
        - Src:             'winpr/libwinpr/file/generic.c:899,25'
          Dst:             opendir
        - Src:             'winpr/libwinpr/file/generic.c:904,28'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/file/generic.c:905,31'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/file/generic.c:908,7'
          Dst:             closedir
        - Src:             'winpr/libwinpr/file/generic.c:922,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: 843
      functionLinenumberEnd: 860
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - hFile
        - lpCreationTime
        - lpLastAccessTime
        - lpLastWriteTime
      BBCount:         10
      ICount:          81
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_Handle_GetInfo
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/generic.c:847,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:848,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:850,28'
              BranchSideFuncs:
                - winpr_Handle_GetInfo.2247
                - WLog_Print_dbg_tag.2244
        - Branch String:   'winpr/libwinpr/file/generic.c:850,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:851,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2244
            - BranchSide:      'winpr/libwinpr/file/generic.c:853,26'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2244
        - Branch String:   'winpr/libwinpr/file/generic.c:855,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:856,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:858,2'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2244
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:850,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/file/generic.c:858,2'
          Dst:             WLog_Print_dbg_tag
    - 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: 821
      functionLinenumberEnd: 839
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - hFile
        - dwReserved
        - nNumberOfBytesToUnlockLow
        - nNumberOfBytesToUnlockHigh
        - lpOverlapped
      BBCount:         10
      ICount:          85
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_Handle_GetInfo
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/generic.c:825,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:826,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:828,28'
              BranchSideFuncs:
                - winpr_Handle_GetInfo.2247
                - WLog_Print_dbg_tag.2244
        - Branch String:   'winpr/libwinpr/file/generic.c:828,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:829,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2244
            - BranchSide:      'winpr/libwinpr/file/generic.c:831,26'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2244
        - Branch String:   'winpr/libwinpr/file/generic.c:833,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:834,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:837,2'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2244
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:828,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/file/generic.c:837,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    UnlockFile
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 799
      functionLinenumberEnd: 817
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - hFile
        - dwFileOffsetLow
        - dwFileOffsetHigh
        - nNumberOfBytesToUnlockLow
        - nNumberOfBytesToUnlockHigh
      BBCount:         10
      ICount:          85
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_Handle_GetInfo
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/generic.c:803,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:804,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:806,28'
              BranchSideFuncs:
                - winpr_Handle_GetInfo.2247
                - WLog_Print_dbg_tag.2244
        - Branch String:   'winpr/libwinpr/file/generic.c:806,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:807,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2244
            - BranchSide:      'winpr/libwinpr/file/generic.c:809,26'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2244
        - Branch String:   'winpr/libwinpr/file/generic.c:811,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:812,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:815,2'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2244
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:806,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/file/generic.c:815,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    LockFileEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 777
      functionLinenumberEnd: 795
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - hFile
        - dwFlags
        - dwReserved
        - nNumberOfBytesToLockLow
        - nNumberOfBytesToLockHigh
        - lpOverlapped
      BBCount:         10
      ICount:          89
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_Handle_GetInfo
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/generic.c:781,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:782,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:784,28'
              BranchSideFuncs:
                - winpr_Handle_GetInfo.2247
                - WLog_Print_dbg_tag.2244
        - Branch String:   'winpr/libwinpr/file/generic.c:784,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:785,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2244
            - BranchSide:      'winpr/libwinpr/file/generic.c:787,26'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2244
        - Branch String:   'winpr/libwinpr/file/generic.c:789,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:790,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:793,2'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2244
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:784,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/file/generic.c:793,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    LockFile
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 755
      functionLinenumberEnd: 773
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - hFile
        - dwFileOffsetLow
        - dwFileOffsetHigh
        - nNumberOfBytesToLockLow
        - nNumberOfBytesToLockHigh
      BBCount:         10
      ICount:          85
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_Handle_GetInfo
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/generic.c:759,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:760,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:762,28'
              BranchSideFuncs:
                - winpr_Handle_GetInfo.2247
                - WLog_Print_dbg_tag.2244
        - Branch String:   'winpr/libwinpr/file/generic.c:762,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:763,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2244
            - BranchSide:      'winpr/libwinpr/file/generic.c:765,26'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2244
        - Branch String:   'winpr/libwinpr/file/generic.c:767,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:768,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:771,2'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2244
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:762,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/file/generic.c:771,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SetFilePointerEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 733
      functionLinenumberEnd: 751
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - hFile
        - liDistanceToMove
        - lpNewFilePointer
        - dwMoveMethod
      BBCount:         10
      ICount:          83
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_Handle_GetInfo
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/generic.c:737,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:738,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:740,28'
              BranchSideFuncs:
                - winpr_Handle_GetInfo.2247
                - WLog_Print_dbg_tag.2244
        - Branch String:   'winpr/libwinpr/file/generic.c:740,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:741,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2244
            - BranchSide:      'winpr/libwinpr/file/generic.c:743,26'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2244
        - Branch String:   'winpr/libwinpr/file/generic.c:745,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:746,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:749,2'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2244
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:740,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/file/generic.c:749,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SetFilePointer
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 711
      functionLinenumberEnd: 729
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - hFile
        - lDistanceToMove
        - lpDistanceToMoveHigh
        - dwMoveMethod
      BBCount:         10
      ICount:          81
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_Handle_GetInfo
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/generic.c:715,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:716,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:718,28'
              BranchSideFuncs:
                - winpr_Handle_GetInfo.2247
                - WLog_Print_dbg_tag.2244
        - Branch String:   'winpr/libwinpr/file/generic.c:718,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:719,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2244
            - BranchSide:      'winpr/libwinpr/file/generic.c:721,26'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2244
        - Branch String:   'winpr/libwinpr/file/generic.c:723,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:724,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:727,2'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2244
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:718,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/file/generic.c:727,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    GetFileSize
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 690
      functionLinenumberEnd: 707
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - hFile
        - lpFileSizeHigh
      BBCount:         10
      ICount:          73
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_Handle_GetInfo
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/generic.c:694,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:695,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:697,28'
              BranchSideFuncs:
                - winpr_Handle_GetInfo.2247
                - WLog_Print_dbg_tag.2244
        - Branch String:   'winpr/libwinpr/file/generic.c:697,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:698,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2244
            - BranchSide:      'winpr/libwinpr/file/generic.c:700,26'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2244
        - Branch String:   'winpr/libwinpr/file/generic.c:702,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:703,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:705,2'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2244
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:697,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/file/generic.c:705,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SetEndOfFile
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 670
      functionLinenumberEnd: 687
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - hFile
      BBCount:         10
      ICount:          69
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_Handle_GetInfo
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/generic.c:674,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:675,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:677,28'
              BranchSideFuncs:
                - winpr_Handle_GetInfo.2247
                - WLog_Print_dbg_tag.2244
        - Branch String:   'winpr/libwinpr/file/generic.c:677,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:678,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2244
            - BranchSide:      'winpr/libwinpr/file/generic.c:680,26'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2244
        - Branch String:   'winpr/libwinpr/file/generic.c:682,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:683,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:685,2'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2244
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:677,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/file/generic.c:685,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SetFileAttributesW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 651
      functionLinenumberEnd: 667
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - lpFileName
        - dwFileAttributes
      BBCount:         8
      ICount:          56
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - ConvertWCharToUtf8Alloc
        - SetFileAttributesA
        - SetLastError
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/generic.c:654,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:655,3'
              BranchSideFuncs:
                - ConvertWCharToUtf8Alloc
                - SetLastError
                - SetFileAttributesA
                - free
            - BranchSide:      'winpr/libwinpr/file/generic.c:657,46'
              BranchSideFuncs:
                - ConvertWCharToUtf8Alloc
                - SetLastError
                - SetFileAttributesA
                - free
        - Branch String:   'winpr/libwinpr/file/generic.c:658,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:660,3'
              BranchSideFuncs:
                - SetFileAttributesA
                - free
            - BranchSide:      'winpr/libwinpr/file/generic.c:664,27'
              BranchSideFuncs:
                - SetFileAttributesA
                - free
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:657,22'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/file/generic.c:660,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/generic.c:664,8'
          Dst:             SetFileAttributesA
    - functionName:    SetFileAttributesA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 612
      functionLinenumberEnd: 648
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - lpFileName
        - dwFileAttributes
      BBCount:         25
      ICount:          130
      EdgeCount:       30
      CyclomaticComplexity: 7
      functionsReached:
        - WLog_Print_dbg_tag
        - close
        - fchmod
        - flagsToStr
        - fstat64
        - open64
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/generic.c:616,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:618,8'
              BranchSideFuncs:
                - flagsToStr
                - WLog_Print_dbg_tag.2244
                - open64
                - fstat64
                - fchmod
                - close
            - BranchSide:      'winpr/libwinpr/file/generic.c:623,16'
              BranchSideFuncs:
                - open64
                - fstat64
                - fchmod
                - close
        - Branch String:   'winpr/libwinpr/file/generic.c:624,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:625,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:627,14'
              BranchSideFuncs:
                - fstat64
                - fchmod
                - close
        - Branch String:   'winpr/libwinpr/file/generic.c:628,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:629,3'
              BranchSideFuncs:
                - close
            - BranchSide:      'winpr/libwinpr/file/generic.c:631,6'
              BranchSideFuncs:
                - fchmod
                - close
        - Branch String:   'winpr/libwinpr/file/generic.c:631,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:633,17'
              BranchSideFuncs:
                - fchmod
                - close
            - BranchSide:      'winpr/libwinpr/file/generic.c:637,6'
              BranchSideFuncs:
                - fchmod
                - close
        - Branch String:   'winpr/libwinpr/file/generic.c:640,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:641,3'
              BranchSideFuncs:
                - close
            - BranchSide:      'winpr/libwinpr/file/generic.c:643,5'
              BranchSideFuncs:
                - close
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:619,23'
          Dst:             flagsToStr
        - Src:             'winpr/libwinpr/file/generic.c:620,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/file/generic.c:623,11'
          Dst:             open64
        - Src:             'winpr/libwinpr/file/generic.c:628,6'
          Dst:             fstat64
        - Src:             'winpr/libwinpr/file/generic.c:640,6'
          Dst:             fchmod
        - Src:             'winpr/libwinpr/file/generic.c:645,2'
          Dst:             close
    - functionName:    flagsToStr
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 573
      functionLinenumberEnd: 608
      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:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/generic.c:575,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:576,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:577,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:577,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:578,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:579,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:579,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:580,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:581,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:581,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:582,10'
              BranchSideFuncs:
                - append
                - snprintf
                - winpr_str_append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
            - BranchSide:      'winpr/libwinpr/file/generic.c:583,6'
              BranchSideFuncs:
                - snprintf
                - winpr_str_append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
        - Branch String:   'winpr/libwinpr/file/generic.c:583,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:584,10'
              BranchSideFuncs:
                - append
                - snprintf
                - winpr_str_append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
            - BranchSide:      'winpr/libwinpr/file/generic.c:585,6'
              BranchSideFuncs:
                - snprintf
                - winpr_str_append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
        - Branch String:   'winpr/libwinpr/file/generic.c:585,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:586,10'
              BranchSideFuncs:
                - append
                - snprintf
                - winpr_str_append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
            - BranchSide:      'winpr/libwinpr/file/generic.c:587,6'
              BranchSideFuncs:
                - snprintf
                - winpr_str_append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
        - Branch String:   'winpr/libwinpr/file/generic.c:587,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:588,10'
              BranchSideFuncs:
                - append
                - snprintf
                - winpr_str_append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
            - BranchSide:      'winpr/libwinpr/file/generic.c:589,6'
              BranchSideFuncs:
                - snprintf
                - winpr_str_append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
        - Branch String:   'winpr/libwinpr/file/generic.c:589,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:590,10'
              BranchSideFuncs:
                - append
                - snprintf
                - winpr_str_append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
            - BranchSide:      'winpr/libwinpr/file/generic.c:591,6'
              BranchSideFuncs:
                - snprintf
                - winpr_str_append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
        - Branch String:   'winpr/libwinpr/file/generic.c:591,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:592,10'
              BranchSideFuncs:
                - append
                - snprintf
                - winpr_str_append
                - append
                - append
                - append
                - append
                - append
                - append
            - BranchSide:      'winpr/libwinpr/file/generic.c:593,6'
              BranchSideFuncs:
                - snprintf
                - winpr_str_append
                - append
                - append
                - append
                - append
                - append
                - append
        - Branch String:   'winpr/libwinpr/file/generic.c:593,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:594,10'
              BranchSideFuncs:
                - append
                - snprintf
                - winpr_str_append
                - append
                - append
                - append
                - append
                - append
            - BranchSide:      'winpr/libwinpr/file/generic.c:595,6'
              BranchSideFuncs:
                - snprintf
                - winpr_str_append
                - append
                - append
                - append
                - append
                - append
        - Branch String:   'winpr/libwinpr/file/generic.c:595,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:596,10'
              BranchSideFuncs:
                - append
                - snprintf
                - winpr_str_append
                - append
                - append
                - append
                - append
            - BranchSide:      'winpr/libwinpr/file/generic.c:597,6'
              BranchSideFuncs:
                - snprintf
                - winpr_str_append
                - append
                - append
                - append
                - append
        - Branch String:   'winpr/libwinpr/file/generic.c:597,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:598,10'
              BranchSideFuncs:
                - append
                - snprintf
                - winpr_str_append
                - append
                - append
                - append
            - BranchSide:      'winpr/libwinpr/file/generic.c:599,6'
              BranchSideFuncs:
                - snprintf
                - winpr_str_append
                - append
                - append
                - append
        - Branch String:   'winpr/libwinpr/file/generic.c:599,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:600,10'
              BranchSideFuncs:
                - append
                - snprintf
                - winpr_str_append
                - append
                - append
            - BranchSide:      'winpr/libwinpr/file/generic.c:601,6'
              BranchSideFuncs:
                - snprintf
                - winpr_str_append
                - append
                - append
        - Branch String:   'winpr/libwinpr/file/generic.c:601,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:602,10'
              BranchSideFuncs:
                - append
                - snprintf
                - winpr_str_append
                - append
            - BranchSide:      'winpr/libwinpr/file/generic.c:603,6'
              BranchSideFuncs:
                - snprintf
                - winpr_str_append
                - append
        - Branch String:   'winpr/libwinpr/file/generic.c:603,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:603,6'
              BranchSideFuncs:
                - append
                - snprintf
                - winpr_str_append
            - BranchSide:      'winpr/libwinpr/file/generic.c:604,10'
              BranchSideFuncs:
                - append
                - snprintf
                - winpr_str_append
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:576,3'
          Dst:             append
        - Src:             'winpr/libwinpr/file/generic.c:578,3'
          Dst:             append
        - Src:             'winpr/libwinpr/file/generic.c:580,3'
          Dst:             append
        - Src:             'winpr/libwinpr/file/generic.c:582,3'
          Dst:             append
        - Src:             'winpr/libwinpr/file/generic.c:584,3'
          Dst:             append
        - Src:             'winpr/libwinpr/file/generic.c:586,3'
          Dst:             append
        - Src:             'winpr/libwinpr/file/generic.c:588,3'
          Dst:             append
        - Src:             'winpr/libwinpr/file/generic.c:590,3'
          Dst:             append
        - Src:             'winpr/libwinpr/file/generic.c:592,3'
          Dst:             append
        - Src:             'winpr/libwinpr/file/generic.c:594,3'
          Dst:             append
        - Src:             'winpr/libwinpr/file/generic.c:596,3'
          Dst:             append
        - Src:             'winpr/libwinpr/file/generic.c:598,3'
          Dst:             append
        - Src:             'winpr/libwinpr/file/generic.c:600,3'
          Dst:             append
        - Src:             'winpr/libwinpr/file/generic.c:602,3'
          Dst:             append
        - Src:             'winpr/libwinpr/file/generic.c:604,3'
          Dst:             append
        - Src:             'winpr/libwinpr/file/generic.c:606,8'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/file/generic.c:607,2'
          Dst:             winpr_str_append
    - 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: 547
      functionLinenumberEnd: 564
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - hFile
        - lpFileInformation
      BBCount:         10
      ICount:          73
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_Handle_GetInfo
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/generic.c:551,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:552,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:554,28'
              BranchSideFuncs:
                - winpr_Handle_GetInfo.2247
                - WLog_Print_dbg_tag.2244
        - Branch String:   'winpr/libwinpr/file/generic.c:554,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:555,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2244
            - BranchSide:      'winpr/libwinpr/file/generic.c:557,26'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2244
        - Branch String:   'winpr/libwinpr/file/generic.c:559,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:560,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:562,2'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2244
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:554,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/file/generic.c:562,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    GetFileAttributesW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 530
      functionLinenumberEnd: 544
      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:532,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:533,3'
              BranchSideFuncs:
                - ConvertWCharToUtf8Alloc
                - SetLastError
                - GetFileAttributesA
                - free
            - BranchSide:      'winpr/libwinpr/file/generic.c:534,46'
              BranchSideFuncs:
                - ConvertWCharToUtf8Alloc
                - SetLastError
                - GetFileAttributesA
                - free
        - Branch String:   'winpr/libwinpr/file/generic.c:535,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:537,3'
              BranchSideFuncs:
                - GetFileAttributesA
                - free
            - BranchSide:      'winpr/libwinpr/file/generic.c:541,27'
              BranchSideFuncs:
                - GetFileAttributesA
                - free
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:534,22'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/file/generic.c:537,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/generic.c:541,8'
          Dst:             GetFileAttributesA
    - functionName:    GetFileAttributesA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 518
      functionLinenumberEnd: 527
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpFileName
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - FindClose
        - FindFirstFileA
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/generic.c:522,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:523,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:525,12'
              BranchSideFuncs:
                - FindClose
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:520,17'
          Dst:             FindFirstFileA
        - Src:             'winpr/libwinpr/file/generic.c:525,2'
          Dst:             FindClose
    - functionName:    GetFileAttributesExW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 500
      functionLinenumberEnd: 515
      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:502,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:503,3'
              BranchSideFuncs:
                - ConvertWCharToUtf8Alloc
                - SetLastError
                - GetFileAttributesExA
                - free
            - BranchSide:      'winpr/libwinpr/file/generic.c:504,46'
              BranchSideFuncs:
                - ConvertWCharToUtf8Alloc
                - SetLastError
                - GetFileAttributesExA
                - free
        - Branch String:   'winpr/libwinpr/file/generic.c:506,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:508,3'
              BranchSideFuncs:
                - GetFileAttributesExA
                - free
            - BranchSide:      'winpr/libwinpr/file/generic.c:512,29'
              BranchSideFuncs:
                - GetFileAttributesExA
                - free
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:504,22'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/file/generic.c:508,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/generic.c:512,8'
          Dst:             GetFileAttributesExA
    - functionName:    GetFileAttributesExA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 477
      functionLinenumberEnd: 496
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpFileName
        - fInfoLevelId
        - lpFileInformation
      BBCount:         8
      ICount:          84
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - FindClose
        - FindFirstFileA
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/generic.c:481,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:482,3'
              BranchSideFuncs:
                - FindFirstFileA
                - FindClose
            - BranchSide:      'winpr/libwinpr/file/generic.c:484,32'
              BranchSideFuncs:
                - FindFirstFileA
                - FindClose
        - Branch String:   'winpr/libwinpr/file/generic.c:485,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:486,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:488,12'
              BranchSideFuncs:
                - FindClose
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:484,17'
          Dst:             FindFirstFileA
        - Src:             'winpr/libwinpr/file/generic.c:488,2'
          Dst:             FindClose
    - functionName:    FlushFileBuffers
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 455
      functionLinenumberEnd: 472
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - hFile
      BBCount:         10
      ICount:          69
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_Handle_GetInfo
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/generic.c:459,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:460,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:462,28'
              BranchSideFuncs:
                - winpr_Handle_GetInfo.2247
                - WLog_Print_dbg_tag.2244
        - Branch String:   'winpr/libwinpr/file/generic.c:462,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:463,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2244
            - BranchSide:      'winpr/libwinpr/file/generic.c:465,26'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2244
        - Branch String:   'winpr/libwinpr/file/generic.c:467,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:468,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:470,2'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2244
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:462,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/file/generic.c:470,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    WriteFileGather
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 434
      functionLinenumberEnd: 452
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - hFile
        - aSegmentArray
        - nNumberOfBytesToWrite
        - lpReserved
        - lpOverlapped
      BBCount:         10
      ICount:          85
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_Handle_GetInfo
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/generic.c:438,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:439,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:441,28'
              BranchSideFuncs:
                - winpr_Handle_GetInfo.2247
                - WLog_Print_dbg_tag.2244
        - Branch String:   'winpr/libwinpr/file/generic.c:441,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:442,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2244
            - BranchSide:      'winpr/libwinpr/file/generic.c:444,26'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2244
        - Branch String:   'winpr/libwinpr/file/generic.c:446,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:447,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:450,2'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2244
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:441,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/file/generic.c:450,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    WriteFileEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 412
      functionLinenumberEnd: 430
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - hFile
        - lpBuffer
        - nNumberOfBytesToWrite
        - lpOverlapped
        - lpCompletionRoutine
      BBCount:         10
      ICount:          85
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_Handle_GetInfo
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/generic.c:416,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:417,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:419,28'
              BranchSideFuncs:
                - winpr_Handle_GetInfo.2247
                - WLog_Print_dbg_tag.2244
        - Branch String:   'winpr/libwinpr/file/generic.c:419,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:420,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2244
            - BranchSide:      'winpr/libwinpr/file/generic.c:422,26'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2244
        - Branch String:   'winpr/libwinpr/file/generic.c:424,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:425,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:428,2'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2244
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:419,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/file/generic.c:428,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    WriteFile
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 390
      functionLinenumberEnd: 408
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - hFile
        - lpBuffer
        - nNumberOfBytesToWrite
        - lpNumberOfBytesWritten
        - lpOverlapped
      BBCount:         10
      ICount:          85
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_Handle_GetInfo
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/generic.c:394,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:395,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:397,28'
              BranchSideFuncs:
                - winpr_Handle_GetInfo.2247
                - WLog_Print_dbg_tag.2244
        - Branch String:   'winpr/libwinpr/file/generic.c:397,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:398,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2244
            - BranchSide:      'winpr/libwinpr/file/generic.c:400,26'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2244
        - Branch String:   'winpr/libwinpr/file/generic.c:402,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:403,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:406,2'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2244
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:397,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/file/generic.c:406,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    ReadFileScatter
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 368
      functionLinenumberEnd: 386
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - hFile
        - aSegmentArray
        - nNumberOfBytesToRead
        - lpReserved
        - lpOverlapped
      BBCount:         10
      ICount:          85
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_Handle_GetInfo
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/generic.c:372,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:373,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:375,28'
              BranchSideFuncs:
                - winpr_Handle_GetInfo.2247
                - WLog_Print_dbg_tag.2244
        - Branch String:   'winpr/libwinpr/file/generic.c:375,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:376,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2244
            - BranchSide:      'winpr/libwinpr/file/generic.c:378,26'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2244
        - Branch String:   'winpr/libwinpr/file/generic.c:380,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:381,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:384,2'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2244
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:375,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/file/generic.c:384,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    ReadFileEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 346
      functionLinenumberEnd: 364
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - hFile
        - lpBuffer
        - nNumberOfBytesToRead
        - lpOverlapped
        - lpCompletionRoutine
      BBCount:         10
      ICount:          85
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_Handle_GetInfo
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/generic.c:350,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:351,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:353,28'
              BranchSideFuncs:
                - winpr_Handle_GetInfo.2247
                - WLog_Print_dbg_tag.2244
        - Branch String:   'winpr/libwinpr/file/generic.c:353,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:354,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2244
            - BranchSide:      'winpr/libwinpr/file/generic.c:356,26'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2244
        - Branch String:   'winpr/libwinpr/file/generic.c:358,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:359,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:362,2'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2244
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:353,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/file/generic.c:362,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    ReadFile
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 316
      functionLinenumberEnd: 342
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - hFile
        - lpBuffer
        - nNumberOfBytesToRead
        - lpNumberOfBytesRead
        - lpOverlapped
      BBCount:         15
      ICount:          104
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_Handle_GetInfo
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/generic.c:320,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:321,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:328,7'
              BranchSideFuncs:
                - winpr_Handle_GetInfo.2247
                - WLog_Print_dbg_tag.2244
        - Branch String:   'winpr/libwinpr/file/generic.c:328,27'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:328,31'
              BranchSideFuncs:
                - winpr_Handle_GetInfo.2247
                - WLog_Print_dbg_tag.2244
            - BranchSide:      'winpr/libwinpr/file/generic.c:331,28'
              BranchSideFuncs:
                - winpr_Handle_GetInfo.2247
                - WLog_Print_dbg_tag.2244
        - Branch String:   'winpr/libwinpr/file/generic.c:328,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:329,3'
              BranchSideFuncs:
                - winpr_Handle_GetInfo.2247
                - WLog_Print_dbg_tag.2244
            - BranchSide:      'winpr/libwinpr/file/generic.c:331,28'
              BranchSideFuncs:
                - winpr_Handle_GetInfo.2247
                - WLog_Print_dbg_tag.2244
        - Branch String:   'winpr/libwinpr/file/generic.c:331,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:332,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2244
            - BranchSide:      'winpr/libwinpr/file/generic.c:334,26'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2244
        - Branch String:   'winpr/libwinpr/file/generic.c:336,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:337,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:340,2'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2244
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:331,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/file/generic.c:340,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    DeleteFileW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 305
      functionLinenumberEnd: 312
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpFileName
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ConvertWCharToUtf8Alloc
        - winpr_DeleteFile
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/generic.c:306,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:307,3'
              BranchSideFuncs:
                - ConvertWCharToUtf8Alloc
                - winpr_DeleteFile
                - free
            - BranchSide:      'winpr/libwinpr/file/generic.c:308,46'
              BranchSideFuncs:
                - ConvertWCharToUtf8Alloc
                - winpr_DeleteFile
                - free
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:308,22'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/file/generic.c:309,12'
          Dst:             winpr_DeleteFile
    - functionName:    DeleteFileA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 300
      functionLinenumberEnd: 301
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpFileName
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_DeleteFile
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:301,9'
          Dst:             winpr_DeleteFile
    - functionName:    CreateFileW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 280
      functionLinenumberEnd: 297
      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
        - SetLastError
        - winpr_CreateFile
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/generic.c:282,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:283,3'
              BranchSideFuncs:
                - ConvertWCharToUtf8Alloc
                - SetLastError
                - free
                - winpr_CreateFile
            - BranchSide:      'winpr/libwinpr/file/generic.c:284,46'
              BranchSideFuncs:
                - ConvertWCharToUtf8Alloc
                - SetLastError
                - free
                - winpr_CreateFile
        - Branch String:   'winpr/libwinpr/file/generic.c:286,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:288,3'
              BranchSideFuncs:
                - winpr_CreateFile
                - free
            - BranchSide:      'winpr/libwinpr/file/generic.c:292,25'
              BranchSideFuncs:
                - winpr_CreateFile
                - free
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:284,22'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/file/generic.c:288,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/generic.c:292,8'
          Dst:             winpr_CreateFile
    - functionName:    winpr_CreateFile
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 241
      functionLinenumberEnd: 275
      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:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/generic.c:242,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:243,3'
              BranchSideFuncs:
                - pthread_once
                - ArrayList_Lock
                - ArrayList_Count
                - ArrayList_Unlock
                - ArrayList_GetItem
                - ArrayList_Unlock
                - SetLastError
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/generic.c:245,6'
              BranchSideFuncs:
                - pthread_once
                - ArrayList_Lock
                - ArrayList_Count
                - ArrayList_Unlock
                - ArrayList_GetItem
                - ArrayList_Unlock
                - SetLastError
                - 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,6'
              BranchSideFuncs:
                - ArrayList_Lock
                - ArrayList_Count
                - ArrayList_Unlock
                - ArrayList_GetItem
                - ArrayList_Unlock
                - SetLastError
        - Branch String:   'winpr/libwinpr/file/generic.c:251,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:253,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/generic.c:257,17'
              BranchSideFuncs:
                - ArrayList_Lock
                - ArrayList_Count
                - ArrayList_Unlock
                - ArrayList_GetItem
                - ArrayList_Unlock
        - Branch String:   'winpr/libwinpr/file/generic.c:259,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:261,53'
              BranchSideFuncs:
                - ArrayList_GetItem
                - ArrayList_Count
                - ArrayList_Unlock
                - ArrayList_Unlock
            - BranchSide:      'winpr/libwinpr/file/generic.c:273,19'
              BranchSideFuncs:
                - ArrayList_Unlock
        - Branch String:   'winpr/libwinpr/file/generic.c:263,15'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:263,18'
              BranchSideFuncs:
                - ArrayList_Count
                - ArrayList_Unlock
                - ArrayList_GetItem
                - ArrayList_Unlock
            - BranchSide:      'winpr/libwinpr/file/generic.c:271,2'
              BranchSideFuncs:
                - ArrayList_Count
                - ArrayList_Unlock
                - ArrayList_GetItem
                - ArrayList_Unlock
        - Branch String:   'winpr/libwinpr/file/generic.c:263,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:266,8'
              BranchSideFuncs:
                - ArrayList_Unlock
            - BranchSide:      'winpr/libwinpr/file/generic.c:271,2'
              BranchSideFuncs:
                - ArrayList_Count
                - ArrayList_Unlock
                - ArrayList_GetItem
                - ArrayList_Unlock
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:245,6'
          Dst:             pthread_once
        - Src:             'winpr/libwinpr/file/generic.c:245,6'
          Dst:             HandleCreatorsInit
        - Src:             'winpr/libwinpr/file/generic.c:247,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/generic.c:253,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/generic.c:257,2'
          Dst:             ArrayList_Lock
        - Src:             'winpr/libwinpr/file/generic.c:259,26'
          Dst:             ArrayList_Count
        - Src:             'winpr/libwinpr/file/generic.c:261,35'
          Dst:             ArrayList_GetItem
        - Src:             'winpr/libwinpr/file/generic.c:268,4'
          Dst:             ArrayList_Unlock
        - Src:             'winpr/libwinpr/file/generic.c:273,2'
          Dst:             ArrayList_Unlock
    - functionName:    HandleCreatorsInit
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 186
      functionLinenumberEnd: 201
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         15
      ICount:          57
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - ArrayList_Append
        - ArrayList_New
        - GetCommHandleCreator
        - GetFileHandleCreator
        - GetNamedPipeClientHandleCreator
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/generic.c:187,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:187,2'
              BranchSideFuncs:
                - winpr_int_assert
                - ArrayList_New
                - GetNamedPipeClientHandleCreator
                - ArrayList_Append
                - GetCommHandleCreator
                - GetFileHandleCreator
                - ArrayList_Append
                - ArrayList_Append
            - BranchSide:      'winpr/libwinpr/file/generic.c:187,2'
              BranchSideFuncs:
                - winpr_int_assert
                - ArrayList_New
                - GetNamedPipeClientHandleCreator
                - ArrayList_Append
                - GetCommHandleCreator
                - GetFileHandleCreator
                - ArrayList_Append
                - ArrayList_Append
        - Branch String:   'winpr/libwinpr/file/generic.c:187,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:187,2'
              BranchSideFuncs:
                - ArrayList_New
                - GetNamedPipeClientHandleCreator
                - ArrayList_Append
                - GetCommHandleCreator
                - GetFileHandleCreator
                - ArrayList_Append
                - ArrayList_Append
            - BranchSide:      'winpr/libwinpr/file/generic.c:187,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/file/generic.c:190,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:191,3'
              BranchSideFuncs:
                - GetNamedPipeClientHandleCreator
                - ArrayList_Append
                - GetCommHandleCreator
                - GetFileHandleCreator
                - ArrayList_Append
                - ArrayList_Append
            - BranchSide:      'winpr/libwinpr/file/generic.c:196,19'
              BranchSideFuncs:
                - GetNamedPipeClientHandleCreator
                - ArrayList_Append
                - GetCommHandleCreator
                - GetFileHandleCreator
                - ArrayList_Append
                - ArrayList_Append
        - Branch String:   'winpr/libwinpr/file/generic.c:198,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:199,20'
              BranchSideFuncs:
                - ArrayList_Append
                - GetFileHandleCreator
                - ArrayList_Append
            - BranchSide:      'winpr/libwinpr/file/generic.c:200,19'
              BranchSideFuncs:
                - GetFileHandleCreator
                - ArrayList_Append
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:187,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/file/generic.c:188,19'
          Dst:             ArrayList_New
        - Src:             'winpr/libwinpr/file/generic.c:196,35'
          Dst:             GetNamedPipeClientHandleCreator
        - Src:             'winpr/libwinpr/file/generic.c:196,2'
          Dst:             ArrayList_Append
        - Src:             'winpr/libwinpr/file/generic.c:197,33'
          Dst:             GetCommHandleCreator
        - Src:             'winpr/libwinpr/file/generic.c:199,3'
          Dst:             ArrayList_Append
        - Src:             'winpr/libwinpr/file/generic.c:200,35'
          Dst:             GetFileHandleCreator
        - Src:             'winpr/libwinpr/file/generic.c:200,2'
          Dst:             ArrayList_Append
    - functionName:    CreateFileA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 233
      functionLinenumberEnd: 235
      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:         3
      ICount:          40
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_CreateFile
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:234,9'
          Dst:             winpr_CreateFile
    - 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: 83
      functionLinenumberEnd: 93
      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:86,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:87,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:89,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/namedPipeClient.c:89,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:90,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:92,10'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:86,7'
          Dst:             NamedPipeClientIsHandled
    - functionName:    NamedPipeClientIsHandled
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/namedPipeClient.c'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 50
      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:50,9'
          Dst:             WINPR_HANDLE_IS_HANDLED
    - functionName:    NamedPipeClientCloseHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/namedPipeClient.c'
      linkageType:     InternalLinkage
      functionLinenumber: 54
      functionLinenumberEnd: 80
      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:57,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:58,3'
              BranchSideFuncs:
                - free
                - free
                - free
                - free
                - close
                - close
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:60,6'
              BranchSideFuncs:
                - free
                - free
                - free
                - free
                - close
                - close
        - Branch String:   'winpr/libwinpr/file/namedPipeClient.c:60,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:63,9'
              BranchSideFuncs:
                - close
                - free
                - free
                - free
                - free
                - close
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:66,6'
              BranchSideFuncs:
                - free
                - free
                - free
                - free
                - close
        - Branch String:   'winpr/libwinpr/file/namedPipeClient.c:66,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:69,9'
              BranchSideFuncs:
                - close
                - free
                - free
                - free
                - free
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:72,6'
              BranchSideFuncs:
                - free
                - free
                - free
                - free
        - Branch String:   'winpr/libwinpr/file/namedPipeClient.c:72,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:73,3'
              BranchSideFuncs:
                - free
                - free
                - free
                - free
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:75,7'
              BranchSideFuncs:
                - free
                - free
                - free
                - free
      Callsites:
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:57,7'
          Dst:             NamedPipeClientIsHandled
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:63,3'
          Dst:             close
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:69,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:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 216
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - tag
        - log_level
        - line
        - file
        - fkt
      BBCount:         9
      ICount:          67
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintMessageVA
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/wlog.h:206,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/wlog.h:207,30'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessageVA
            - BranchSide:      'winpr/include/winpr/wlog.h:209,26'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessageVA
        - Branch String:   'winpr/include/winpr/wlog.h:209,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/wlog.h:209,7'
              BranchSideFuncs:
                - WLog_PrintMessageVA
            - BranchSide:      'winpr/include/winpr/wlog.h:212,4'
              BranchSideFuncs:
                - WLog_PrintMessageVA
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:207,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:209,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:213,4'
          Dst:             WLog_PrintMessageVA
    - functionName:    GetNamePipeFileDescriptor
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/namedPipeClient.c'
      linkageType:     InternalLinkage
      functionLinenumber: 276
      functionLinenumberEnd: 289
      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:281,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:282,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:284,8'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/namedPipeClient.c:284,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:284,34'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:284,57'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:281,7'
          Dst:             NamedPipeClientIsHandled
    - functionName:    GetNamedPipeUnixDomainSocketFilePathA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/namedPipeClient.c'
      linkageType:     InternalLinkage
      functionLinenumber: 263
      functionLinenumberEnd: 272
      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:267,15'
          Dst:             GetNamedPipeUnixDomainSocketBaseFilePathA
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:268,15'
          Dst:             GetNamedPipeNameWithoutPrefixA
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:269,15'
          Dst:             GetCombinedPath
    - functionName:    GetNamedPipeUnixDomainSocketBaseFilePathA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/namedPipeClient.c'
      linkageType:     InternalLinkage
      functionLinenumber: 249
      functionLinenumberEnd: 260
      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:250,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:250,8'
              BranchSideFuncs:
                - GetKnownPath
                - GetCombinedPath
                - free
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:250,8'
              BranchSideFuncs:
                - GetKnownPath
                - GetCombinedPath
                - free
        - Branch String:   'winpr/libwinpr/file/namedPipeClient.c:254,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:255,3'
              BranchSideFuncs:
                - GetCombinedPath
                - free
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:257,31'
              BranchSideFuncs:
                - GetCombinedPath
                - free
      Callsites:
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:252,15'
          Dst:             GetKnownPath
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:257,15'
          Dst:             GetCombinedPath
    - functionName:    GetNamedPipeNameWithoutPrefixA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/namedPipeClient.c'
      linkageType:     InternalLinkage
      functionLinenumber: 235
      functionLinenumberEnd: 246
      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:    3
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/namedPipeClient.c:238,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:239,3'
              BranchSideFuncs:
                - IsNamedPipeFileNameA
                - strnlen
                - _strdup
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:241,28'
              BranchSideFuncs:
                - IsNamedPipeFileNameA
                - strnlen
                - _strdup
        - Branch String:   'winpr/libwinpr/file/namedPipeClient.c:241,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:242,3'
              BranchSideFuncs:
                - strnlen
                - _strdup
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:244,24'
              BranchSideFuncs:
                - strnlen
                - _strdup
      Callsites:
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:241,7'
          Dst:             IsNamedPipeFileNameA
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:244,31'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:244,15'
          Dst:             _strdup
    - functionName:    IsNamedPipeFileNameA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/namedPipeClient.c'
      linkageType:     InternalLinkage
      functionLinenumber: 227
      functionLinenumberEnd: 232
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpName
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - strncmp
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/namedPipeClient.c:228,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:229,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:231,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:228,6'
          Dst:             strncmp
    - functionName:    NamedPipeClientCreateFileA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/namedPipeClient.c'
      linkageType:     InternalLinkage
      functionLinenumber: 125
      functionLinenumberEnd: 210
      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:         32
      ICount:          259
      EdgeCount:       44
      CyclomaticComplexity: 14
      functionsReached:
        - GetNamedPipeNameWithoutPrefixA
        - GetNamedPipeUnixDomainSocketFilePathA
        - IsNamedPipeFileNameA
        - SetLastError
        - WINPR_HANDLE_SET_TYPE_AND_MODE
        - WLog_Print_dbg_tag
        - _strdup
        - calloc
        - close
        - connect
        - snprintf
        - socket
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/namedPipeClient.c:129,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:131,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2316
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:136,7'
              BranchSideFuncs:
                - IsNamedPipeFileNameA
                - calloc
                - SetLastError
                - WINPR_HANDLE_SET_TYPE_AND_MODE.2315
                - _strdup
                - SetLastError
                - free
                - free
                - free
                - free
                - close
                - GetNamedPipeNameWithoutPrefixA
                - GetNamedPipeUnixDomainSocketFilePathA
                - socket
                - snprintf
                - connect
                - WLog_Print_dbg_tag.2316
        - Branch String:   'winpr/libwinpr/file/namedPipeClient.c:136,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:137,3'
              BranchSideFuncs:
                - IsNamedPipeFileNameA
                - calloc
                - SetLastError
                - WINPR_HANDLE_SET_TYPE_AND_MODE.2315
                - _strdup
                - SetLastError
                - free
                - free
                - free
                - free
                - close
                - GetNamedPipeNameWithoutPrefixA
                - GetNamedPipeUnixDomainSocketFilePathA
                - socket
                - snprintf
                - connect
                - WLog_Print_dbg_tag.2316
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:139,28'
              BranchSideFuncs:
                - IsNamedPipeFileNameA
                - calloc
                - SetLastError
                - WINPR_HANDLE_SET_TYPE_AND_MODE.2315
                - _strdup
                - SetLastError
                - free
                - free
                - free
                - free
                - close
                - GetNamedPipeNameWithoutPrefixA
                - GetNamedPipeUnixDomainSocketFilePathA
                - socket
                - snprintf
                - connect
                - WLog_Print_dbg_tag.2316
        - Branch String:   'winpr/libwinpr/file/namedPipeClient.c:139,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:140,3'
              BranchSideFuncs:
                - calloc
                - SetLastError
                - WINPR_HANDLE_SET_TYPE_AND_MODE.2315
                - _strdup
                - SetLastError
                - free
                - free
                - free
                - free
                - close
                - GetNamedPipeNameWithoutPrefixA
                - GetNamedPipeUnixDomainSocketFilePathA
                - socket
                - snprintf
                - connect
                - WLog_Print_dbg_tag.2316
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:142,52'
              BranchSideFuncs:
                - calloc
                - SetLastError
                - WINPR_HANDLE_SET_TYPE_AND_MODE.2315
                - _strdup
                - SetLastError
                - free
                - free
                - free
                - free
                - close
                - GetNamedPipeNameWithoutPrefixA
                - GetNamedPipeUnixDomainSocketFilePathA
                - socket
                - snprintf
                - connect
                - WLog_Print_dbg_tag.2316
        - Branch String:   'winpr/libwinpr/file/namedPipeClient.c:144,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:146,3'
              BranchSideFuncs:
                - WINPR_HANDLE_SET_TYPE_AND_MODE.2315
                - _strdup
                - SetLastError
                - free
                - free
                - free
                - free
                - close
                - GetNamedPipeNameWithoutPrefixA
                - GetNamedPipeUnixDomainSocketFilePathA
                - socket
                - snprintf
                - connect
                - WLog_Print_dbg_tag.2316
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:150,30'
              BranchSideFuncs:
                - WINPR_HANDLE_SET_TYPE_AND_MODE.2315
                - _strdup
                - SetLastError
                - free
                - free
                - free
                - free
                - close
                - GetNamedPipeNameWithoutPrefixA
                - GetNamedPipeUnixDomainSocketFilePathA
                - socket
                - snprintf
                - connect
                - WLog_Print_dbg_tag.2316
        - Branch String:   'winpr/libwinpr/file/namedPipeClient.c:154,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:156,3'
              BranchSideFuncs:
                - GetNamedPipeNameWithoutPrefixA
                - free
                - free
                - free
                - free
                - close
                - GetNamedPipeUnixDomainSocketFilePathA
                - socket
                - snprintf
                - connect
                - WLog_Print_dbg_tag.2316
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:160,2'
              BranchSideFuncs:
                - GetNamedPipeNameWithoutPrefixA
                - free
                - free
                - free
                - free
                - close
                - GetNamedPipeUnixDomainSocketFilePathA
                - socket
                - snprintf
                - connect
                - WLog_Print_dbg_tag.2316
        - Branch String:   'winpr/libwinpr/file/namedPipeClient.c:169,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:170,3'
              BranchSideFuncs:
                - GetNamedPipeUnixDomainSocketFilePathA
                - free
                - free
                - free
                - free
                - close
                - socket
                - snprintf
                - connect
                - WLog_Print_dbg_tag.2316
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:172,65'
              BranchSideFuncs:
                - GetNamedPipeUnixDomainSocketFilePathA
                - free
                - free
                - free
                - free
                - close
                - socket
                - snprintf
                - connect
                - WLog_Print_dbg_tag.2316
        - Branch String:   'winpr/libwinpr/file/namedPipeClient.c:174,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:175,3'
              BranchSideFuncs:
                - socket
                - snprintf
                - connect
                - WLog_Print_dbg_tag.2316
                - free
                - free
                - free
                - free
                - close
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:177,25'
              BranchSideFuncs:
                - socket
                - snprintf
                - connect
                - WLog_Print_dbg_tag.2316
                - free
                - free
                - free
                - free
                - close
        - Branch String:   'winpr/libwinpr/file/namedPipeClient.c:178,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:179,3'
              BranchSideFuncs:
                - free
                - free
                - free
                - free
                - close
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:181,2'
              BranchSideFuncs:
                - snprintf
                - connect
                - WLog_Print_dbg_tag.2316
                - free
                - free
                - free
                - free
                - close
        - Branch String:   'winpr/libwinpr/file/namedPipeClient.c:188,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:189,3'
              BranchSideFuncs:
                - free
                - free
                - free
                - free
                - close
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:191,6'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2316
        - Branch String:   'winpr/libwinpr/file/namedPipeClient.c:191,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:194,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2316
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:197,9'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/namedPipeClient.c:200,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:202,7'
              BranchSideFuncs:
                - free
                - free
                - free
                - free
                - close
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:209,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/namedPipeClient.c:202,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:203,10'
              BranchSideFuncs:
                - close
                - free
                - free
                - free
                - free
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:204,8'
              BranchSideFuncs:
                - free
                - free
                - free
                - free
      Callsites:
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:131,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:132,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:139,7'
          Dst:             IsNamedPipeFileNameA
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:142,52'
          Dst:             calloc
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:146,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:151,2'
          Dst:             WINPR_HANDLE_SET_TYPE_AND_MODE
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:152,21'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:156,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:167,27'
          Dst:             GetNamedPipeNameWithoutPrefixA
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:172,27'
          Dst:             GetNamedPipeUnixDomainSocketFilePathA
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:177,25'
          Dst:             socket
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:184,8'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:185,11'
          Dst:             connect
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:194,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:203,4'
          Dst:             close
    - functionName:    GetNamedPipeClientHandleCreator
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/namedPipeClient.c'
      linkageType:     InternalLinkage
      functionLinenumber: 213
      functionLinenumberEnd: 217
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          4
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 216
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - tag
        - log_level
        - line
        - file
        - fkt
      BBCount:         9
      ICount:          67
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintMessageVA
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/wlog.h:206,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/wlog.h:207,30'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessageVA
            - BranchSide:      'winpr/include/winpr/wlog.h:209,26'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessageVA
        - Branch String:   'winpr/include/winpr/wlog.h:209,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/wlog.h:209,7'
              BranchSideFuncs:
                - WLog_PrintMessageVA
            - BranchSide:      'winpr/include/winpr/wlog.h:212,4'
              BranchSideFuncs:
                - WLog_PrintMessageVA
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:207,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:209,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:213,4'
          Dst:             WLog_PrintMessageVA
    - 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:         36
      ICount:          228
      EdgeCount:       50
      CyclomaticComplexity: 16
      functionsReached:
        - WLog_Print_dbg_tag
        - _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_Print_dbg_tag.2340
                - _strnicmp
                - strchr
                - _strnicmp
                - _strnicmp
                - strchr
                - _strnicmp
            - BranchSide:      'winpr/libwinpr/file/pattern.c:93,7'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2340
                - _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_Print_dbg_tag.2340
                - _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_Print_dbg_tag.2340
        - 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: []
      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_Print_dbg_tag
    - functionName:    FilePatternMatchA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/pattern.c'
      linkageType:     InternalLinkage
      functionLinenumber: 199
      functionLinenumberEnd: 373
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpFileName
        - lpPattern
      BBCount:         139
      ICount:          780
      EdgeCount:       167
      CyclomaticComplexity: 30
      functionsReached:
        - FilePatternFindNextWildcardA
        - FilePatternMatchSubExpressionA
        - _stricmp
        - strlen
        - winpr_int_assert
      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
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - FilePatternMatchSubExpressionA
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - FilePatternMatchSubExpressionA
                - FilePatternFindNextWildcardA
                - strlen
                - FilePatternFindNextWildcardA
                - _stricmp
            - BranchSide:      'winpr/libwinpr/file/pattern.c:227,7'
              BranchSideFuncs:
                - strlen
                - strlen
                - FilePatternFindNextWildcardA
                - _stricmp
                - FilePatternFindNextWildcardA
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - FilePatternMatchSubExpressionA
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - 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
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - FilePatternMatchSubExpressionA
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - FilePatternMatchSubExpressionA
                - FilePatternFindNextWildcardA
                - strlen
                - FilePatternFindNextWildcardA
                - _stricmp
            - BranchSide:      'winpr/libwinpr/file/pattern.c:230,22'
              BranchSideFuncs:
                - strlen
                - strlen
                - FilePatternFindNextWildcardA
                - _stricmp
                - FilePatternFindNextWildcardA
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - FilePatternMatchSubExpressionA
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - 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
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - FilePatternMatchSubExpressionA
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - FilePatternMatchSubExpressionA
                - FilePatternFindNextWildcardA
                - strlen
                - FilePatternFindNextWildcardA
                - _stricmp
            - BranchSide:      'winpr/libwinpr/file/pattern.c:253,6'
              BranchSideFuncs:
                - FilePatternFindNextWildcardA
                - _stricmp
                - FilePatternFindNextWildcardA
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - FilePatternMatchSubExpressionA
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - 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
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - FilePatternMatchSubExpressionA
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - 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
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - FilePatternMatchSubExpressionA
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - FilePatternMatchSubExpressionA
                - FilePatternFindNextWildcardA
            - BranchSide:      'winpr/libwinpr/file/pattern.c:304,44'
              BranchSideFuncs:
                - FilePatternFindNextWildcardA
                - _stricmp
                - FilePatternFindNextWildcardA
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - FilePatternMatchSubExpressionA
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - 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
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - FilePatternMatchSubExpressionA
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - FilePatternMatchSubExpressionA
                - FilePatternFindNextWildcardA
            - BranchSide:      'winpr/libwinpr/file/pattern.c:269,2'
              BranchSideFuncs:
                - FilePatternFindNextWildcardA
                - _stricmp
                - FilePatternFindNextWildcardA
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - FilePatternMatchSubExpressionA
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - 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
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - FilePatternMatchSubExpressionA
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - FilePatternMatchSubExpressionA
                - FilePatternFindNextWildcardA
            - BranchSide:      'winpr/libwinpr/file/pattern.c:368,16'
              BranchSideFuncs:
                - _stricmp
        - Branch String:   'winpr/libwinpr/file/pattern.c:326,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/pattern.c:328,10'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - FilePatternMatchSubExpressionA
                - FilePatternFindNextWildcardA
            - BranchSide:      'winpr/libwinpr/file/pattern.c:338,4'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - FilePatternMatchSubExpressionA
                - FilePatternFindNextWildcardA
        - Branch String:   'winpr/libwinpr/file/pattern.c:329,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/pattern.c:329,11'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - FilePatternMatchSubExpressionA
            - BranchSide:      'winpr/libwinpr/file/pattern.c:329,11'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/file/pattern.c:329,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/pattern.c:329,11'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - FilePatternMatchSubExpressionA
            - BranchSide:      'winpr/libwinpr/file/pattern.c:329,11'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - FilePatternMatchSubExpressionA
        - Branch String:   'winpr/libwinpr/file/pattern.c:329,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/pattern.c:329,11'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - FilePatternMatchSubExpressionA
            - BranchSide:      'winpr/libwinpr/file/pattern.c:329,11'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - FilePatternMatchSubExpressionA
        - Branch String:   'winpr/libwinpr/file/pattern.c:329,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/pattern.c:329,11'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - FilePatternMatchSubExpressionA
            - BranchSide:      'winpr/libwinpr/file/pattern.c:329,11'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/file/pattern.c:329,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/pattern.c:329,11'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - FilePatternMatchSubExpressionA
            - BranchSide:      'winpr/libwinpr/file/pattern.c:329,11'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/file/pattern.c:331,28'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/pattern.c:331,28'
              BranchSideFuncs:
                - winpr_int_assert
                - FilePatternMatchSubExpressionA
            - BranchSide:      'winpr/libwinpr/file/pattern.c:331,28'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/file/pattern.c:331,28'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/pattern.c:331,28'
              BranchSideFuncs:
                - winpr_int_assert
                - FilePatternMatchSubExpressionA
            - BranchSide:      'winpr/libwinpr/file/pattern.c:331,28'
              BranchSideFuncs:
                - winpr_int_assert
                - FilePatternMatchSubExpressionA
        - Branch String:   'winpr/libwinpr/file/pattern.c:331,28'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/pattern.c:331,28'
              BranchSideFuncs:
                - FilePatternMatchSubExpressionA
            - BranchSide:      'winpr/libwinpr/file/pattern.c:331,28'
              BranchSideFuncs:
                - winpr_int_assert
                - FilePatternMatchSubExpressionA
        - Branch String:   'winpr/libwinpr/file/pattern.c:331,28'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/pattern.c:331,28'
              BranchSideFuncs:
                - winpr_int_assert
                - FilePatternMatchSubExpressionA
            - BranchSide:      'winpr/libwinpr/file/pattern.c:331,28'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/file/pattern.c:331,28'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/pattern.c:331,28'
              BranchSideFuncs:
                - FilePatternMatchSubExpressionA
            - BranchSide:      'winpr/libwinpr/file/pattern.c:331,28'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/file/pattern.c:338,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/pattern.c:341,9'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - FilePatternMatchSubExpressionA
                - FilePatternFindNextWildcardA
            - BranchSide:      'winpr/libwinpr/file/pattern.c:362,4'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/pattern.c:341,23'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/pattern.c:341,23'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - FilePatternMatchSubExpressionA
                - FilePatternFindNextWildcardA
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/file/pattern.c:341,23'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/file/pattern.c:341,23'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/pattern.c:341,23'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - FilePatternMatchSubExpressionA
                - FilePatternFindNextWildcardA
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/file/pattern.c:341,23'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - FilePatternMatchSubExpressionA
                - FilePatternFindNextWildcardA
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/file/pattern.c:341,23'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/pattern.c:341,23'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - FilePatternMatchSubExpressionA
                - FilePatternFindNextWildcardA
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/file/pattern.c:341,23'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - FilePatternMatchSubExpressionA
                - FilePatternFindNextWildcardA
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/file/pattern.c:341,23'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/pattern.c:341,23'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - FilePatternMatchSubExpressionA
                - FilePatternFindNextWildcardA
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/file/pattern.c:341,23'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/file/pattern.c:341,23'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/pattern.c:341,23'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - FilePatternMatchSubExpressionA
                - FilePatternFindNextWildcardA
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/file/pattern.c:341,23'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/file/pattern.c:344,12'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/pattern.c:344,12'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - FilePatternMatchSubExpressionA
                - FilePatternFindNextWildcardA
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/file/pattern.c:344,12'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/file/pattern.c:344,12'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/pattern.c:344,12'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - FilePatternMatchSubExpressionA
                - FilePatternFindNextWildcardA
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/file/pattern.c:344,12'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - FilePatternMatchSubExpressionA
                - FilePatternFindNextWildcardA
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/file/pattern.c:344,12'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/pattern.c:344,12'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - FilePatternMatchSubExpressionA
                - FilePatternFindNextWildcardA
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/file/pattern.c:344,12'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - FilePatternMatchSubExpressionA
                - FilePatternFindNextWildcardA
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/file/pattern.c:344,12'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/pattern.c:344,12'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - FilePatternMatchSubExpressionA
                - FilePatternFindNextWildcardA
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/file/pattern.c:344,12'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/file/pattern.c:344,12'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/pattern.c:344,12'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - FilePatternMatchSubExpressionA
                - FilePatternFindNextWildcardA
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/file/pattern.c:344,12'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/file/pattern.c:347,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/pattern.c:347,9'
              BranchSideFuncs:
                - winpr_int_assert
                - FilePatternMatchSubExpressionA
                - FilePatternFindNextWildcardA
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/file/pattern.c:347,9'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/file/pattern.c:347,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/pattern.c:347,9'
              BranchSideFuncs:
                - winpr_int_assert
                - FilePatternMatchSubExpressionA
                - FilePatternFindNextWildcardA
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/file/pattern.c:347,9'
              BranchSideFuncs:
                - winpr_int_assert
                - FilePatternMatchSubExpressionA
                - FilePatternFindNextWildcardA
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/file/pattern.c:347,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/pattern.c:347,9'
              BranchSideFuncs:
                - FilePatternMatchSubExpressionA
                - FilePatternFindNextWildcardA
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/file/pattern.c:347,9'
              BranchSideFuncs:
                - winpr_int_assert
                - FilePatternMatchSubExpressionA
                - FilePatternFindNextWildcardA
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/file/pattern.c:347,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/pattern.c:347,9'
              BranchSideFuncs:
                - winpr_int_assert
                - FilePatternMatchSubExpressionA
                - FilePatternFindNextWildcardA
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/file/pattern.c:347,9'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/file/pattern.c:347,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/pattern.c:347,9'
              BranchSideFuncs:
                - FilePatternMatchSubExpressionA
                - FilePatternFindNextWildcardA
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/file/pattern.c:347,9'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/file/pattern.c:351,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/pattern.c:352,6'
              BranchSideFuncs:
                - FilePatternFindNextWildcardA
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - FilePatternMatchSubExpressionA
            - BranchSide:      'winpr/libwinpr/file/pattern.c:354,21'
              BranchSideFuncs:
                - FilePatternFindNextWildcardA
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - 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:329,11'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/file/pattern.c:329,11'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/file/pattern.c:331,28'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/file/pattern.c:331,28'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/file/pattern.c:332,12'
          Dst:             FilePatternMatchSubExpressionA
        - Src:             'winpr/libwinpr/file/pattern.c:341,23'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/file/pattern.c:341,23'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/file/pattern.c:344,12'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/file/pattern.c:344,12'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/file/pattern.c:347,9'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/file/pattern.c:347,9'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/file/pattern.c:348,13'
          Dst:             FilePatternMatchSubExpressionA
        - Src:             'winpr/libwinpr/file/pattern.c:359,9'
          Dst:             FilePatternFindNextWildcardA
        - Src:             'winpr/libwinpr/file/pattern.c:368,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:    CommIoCtlToStr
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1497
      functionLinenumberEnd: 1793
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - io
      BBCount:         75
      ICount:          377
      EdgeCount:       148
      CyclomaticComplexity: 75
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:1498,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1503,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1507,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1511,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1515,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1519,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1523,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1527,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1531,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1535,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1539,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1543,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1547,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1551,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1555,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1559,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1563,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1567,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1571,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1575,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1579,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1583,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1587,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1591,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1595,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1599,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1603,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1607,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1611,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1615,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1619,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1623,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1627,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1631,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1635,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1639,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1643,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1647,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1651,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1655,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1659,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1663,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1667,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1671,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1675,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1679,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1683,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1687,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1691,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1695,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1699,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1703,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1707,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1711,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1715,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1719,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1723,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1727,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1731,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1735,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1739,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1743,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1747,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1751,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1755,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1759,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1763,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1767,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1771,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1775,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1779,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1783,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1787,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1791,4'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    CommGetFd
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 143
      functionLinenumberEnd: 150
      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:146,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:147,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:149,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:146,7'
          Dst:             CommIsHandled
    - functionName:    CommIsHandled
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1432
      functionLinenumberEnd: 1437
      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:1433,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1434,3'
              BranchSideFuncs:
                - WINPR_HANDLE_IS_HANDLED.2501
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1436,33'
              BranchSideFuncs:
                - WINPR_HANDLE_IS_HANDLED.2501
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:1433,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:1436,9'
          Dst:             WINPR_HANDLE_IS_HANDLED
    - functionName:    CommInitialized
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 189
      functionLinenumberEnd: 197
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          28
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - CommInit
        - SetLastError
        - pthread_once
      functionUses:    29
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:190,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:190,6'
              BranchSideFuncs:
                - pthread_once
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:190,6'
              BranchSideFuncs:
                - pthread_once
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:190,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:192,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:196,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:190,6'
          Dst:             pthread_once
        - Src:             'winpr/libwinpr/comm/comm.c:190,6'
          Dst:             CommInit
        - Src:             'winpr/libwinpr/comm/comm.c:192,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: 164
      functionLinenumberEnd: 182
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         25
      ICount:          72
      EdgeCount:       27
      CyclomaticComplexity: 4
      functionsReached:
        - InitializeCriticalSectionEx
        - WLog_Get
        - calloc
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:166,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:166,2'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - calloc
                - InitializeCriticalSectionEx
                - free
                - WLog_Get
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/comm/comm.c:166,2'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - calloc
                - InitializeCriticalSectionEx
                - free
                - WLog_Get
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm.c:166,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:166,2'
              BranchSideFuncs:
                - winpr_int_assert
                - calloc
                - InitializeCriticalSectionEx
                - free
                - WLog_Get
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/comm/comm.c:166,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm.c:167,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:167,2'
              BranchSideFuncs:
                - calloc
                - InitializeCriticalSectionEx
                - free
                - WLog_Get
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/comm/comm.c:167,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm.c:170,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:171,3'
              BranchSideFuncs:
                - InitializeCriticalSectionEx
                - free
                - WLog_Get
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/comm/comm.c:173,7'
              BranchSideFuncs:
                - InitializeCriticalSectionEx
                - free
                - WLog_Get
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm.c:173,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:175,15'
              BranchSideFuncs:
                - WLog_Get
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/comm/comm.c:180,9'
              BranchSideFuncs:
                - WLog_Get
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm.c:181,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:181,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:181,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:166,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm.c:167,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm.c:168,32'
          Dst:             calloc
        - Src:             'winpr/libwinpr/comm/comm.c:173,7'
          Dst:             InitializeCriticalSectionEx
        - Src:             'winpr/libwinpr/comm/comm.c:180,9'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/comm/comm.c:181,2'
          Dst:             winpr_int_assert
    - functionName:    CommSerialEvFlagString
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1854
      functionLinenumberEnd: 1890
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - flag
      BBCount:         18
      ICount:          93
      EdgeCount:       34
      CyclomaticComplexity: 18
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:1855,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1858,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1860,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1862,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1864,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1866,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1868,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1870,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1872,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1874,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1876,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1878,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1880,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1882,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1884,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1886,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1888,4'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    CommSerialEvString
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1893
      functionLinenumberEnd: 1916
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - status
        - buffer
        - size
      BBCount:         10
      ICount:          86
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - CommSerialEvFlagString
        - snprintf
        - winpr_str_append
      functionUses:    3
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:1903,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1905,28'
              BranchSideFuncs:
                - snprintf
                - winpr_str_append
                - CommSerialEvFlagString
                - winpr_str_append
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1913,7'
              BranchSideFuncs:
                - snprintf
                - winpr_str_append
        - Branch String:   'winpr/libwinpr/comm/comm.c:1906,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1908,44'
              BranchSideFuncs:
                - CommSerialEvFlagString
                - winpr_str_append
                - snprintf
                - winpr_str_append
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1911,2'
              BranchSideFuncs:
                - snprintf
                - winpr_str_append
                - CommSerialEvFlagString
                - winpr_str_append
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:1900,2'
          Dst:             winpr_str_append
        - Src:             'winpr/libwinpr/comm/comm.c:1908,21'
          Dst:             CommSerialEvFlagString
        - Src:             'winpr/libwinpr/comm/comm.c:1908,4'
          Dst:             winpr_str_append
        - Src:             'winpr/libwinpr/comm/comm.c:1914,8'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/comm/comm.c:1915,2'
          Dst:             winpr_str_append
    - functionName:    CommStatusErrorEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1797
      functionLinenumberEnd: 1817
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - pComm
        - ctl
        - file
        - fkt
        - line
      BBCount:         18
      ICount:          115
      EdgeCount:       21
      CyclomaticComplexity: 5
      functionsReached:
        - CommInitialized
        - CommIoCtlToStr
        - SetLastError
        - WLog_IsLevelActive
        - WLog_PrintMessage
        - __errno_location
        - winpr_int_assert
        - winpr_strerror
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:1798,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1798,2'
              BranchSideFuncs:
                - CommIoCtlToStr
                - CommInitialized
                - SetLastError
                - WLog_IsLevelActive
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1798,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm.c:1804,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1806,26'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1814,7'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:1806,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1808,22'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1812,2'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:1814,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1814,6'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1815,3'
              BranchSideFuncs:
                - SetLastError
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:1798,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm.c:1802,20'
          Dst:             CommIoCtlToStr
        - Src:             'winpr/libwinpr/comm/comm.c:1804,6'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:1806,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/comm/comm.c:1809,85'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm.c:1810,37'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm.c:1810,22'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/comm/comm.c:1808,4'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/comm/comm.c:1815,3'
          Dst:             SetLastError
    - functionName:    CommIoCtl_int
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1822
      functionLinenumberEnd: 1829
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - pComm
        - ctl
        - data
        - file
        - fkt
        - line
      BBCount:         9
      ICount:          64
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - CommStatusErrorEx
        - ioctl
      functionUses:    9
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:1823,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1825,26'
              BranchSideFuncs:
                - CommStatusErrorEx
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1828,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm.c:1825,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1826,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1827,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:1823,6'
          Dst:             ioctl
        - Src:             'winpr/libwinpr/comm/comm.c:1825,8'
          Dst:             CommStatusErrorEx
    - functionName:    CommCloseHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1453
      functionLinenumberEnd: 1480
      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:1456,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1457,3'
              BranchSideFuncs:
                - DeleteCriticalSection
                - DeleteCriticalSection
                - DeleteCriticalSection
                - free
                - close
                - close
                - close
                - close
                - close
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1459,25'
              BranchSideFuncs:
                - DeleteCriticalSection
                - DeleteCriticalSection
                - DeleteCriticalSection
                - free
                - close
                - close
                - close
                - close
                - close
        - Branch String:   'winpr/libwinpr/comm/comm.c:1463,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1464,9'
              BranchSideFuncs:
                - close
                - free
                - close
                - close
                - close
                - close
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1466,6'
              BranchSideFuncs:
                - free
                - close
                - close
                - close
                - close
        - Branch String:   'winpr/libwinpr/comm/comm.c:1466,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1467,9'
              BranchSideFuncs:
                - close
                - free
                - close
                - close
                - close
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1469,6'
              BranchSideFuncs:
                - free
                - close
                - close
                - close
        - Branch String:   'winpr/libwinpr/comm/comm.c:1469,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1470,9'
              BranchSideFuncs:
                - close
                - free
                - close
                - close
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1472,6'
              BranchSideFuncs:
                - free
                - close
                - close
        - Branch String:   'winpr/libwinpr/comm/comm.c:1472,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1473,9'
              BranchSideFuncs:
                - close
                - free
                - close
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1475,6'
              BranchSideFuncs:
                - free
                - close
        - Branch String:   'winpr/libwinpr/comm/comm.c:1475,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1476,9'
              BranchSideFuncs:
                - close
                - free
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1478,7'
              BranchSideFuncs:
                - free
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:1456,7'
          Dst:             CommIsHandled
        - Src:             'winpr/libwinpr/comm/comm.c:1459,2'
          Dst:             DeleteCriticalSection
        - Src:             'winpr/libwinpr/comm/comm.c:1460,2'
          Dst:             DeleteCriticalSection
        - Src:             'winpr/libwinpr/comm/comm.c:1461,2'
          Dst:             DeleteCriticalSection
        - Src:             'winpr/libwinpr/comm/comm.c:1464,3'
          Dst:             close
        - Src:             'winpr/libwinpr/comm/comm.c:1467,3'
          Dst:             close
        - Src:             'winpr/libwinpr/comm/comm.c:1470,3'
          Dst:             close
        - Src:             'winpr/libwinpr/comm/comm.c:1473,3'
          Dst:             close
        - Src:             'winpr/libwinpr/comm/comm.c:1476,3'
          Dst:             close
    - functionName:    CommUpdateIOCount
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1832
      functionLinenumberEnd: 1851
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - handle
        - checkSupportStatus
      BBCount:         24
      ICount:          110
      EdgeCount:       29
      CyclomaticComplexity: 7
      functionsReached:
        - CommStatusErrorEx
        - ioctl
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:1834,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1834,2'
              BranchSideFuncs:
                - ioctl
                - CommStatusErrorEx
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1834,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm.c:1838,34'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1838,37'
              BranchSideFuncs:
                - ioctl
                - CommStatusErrorEx
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1840,24'
              BranchSideFuncs:
                - ioctl
                - CommStatusErrorEx
        - Branch String:   'winpr/libwinpr/comm/comm.c:1838,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1840,24'
              BranchSideFuncs:
                - ioctl
                - CommStatusErrorEx
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1850,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm.c:1841,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1842,34'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1843,12'
              BranchSideFuncs:
                - CommStatusErrorEx
        - Branch String:   'winpr/libwinpr/comm/comm.c:1845,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1846,5'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1847,3'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:1834,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm.c:1840,18'
          Dst:             ioctl
        - Src:             'winpr/libwinpr/comm/comm.c:1845,9'
          Dst:             CommStatusErrorEx
    - 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: 1196
      functionLinenumberEnd: 1212
      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_PrintEx
        - winpr_Handle_GetInfo
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:1201,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1202,3'
              BranchSideFuncs:
                - winpr_Handle_GetInfo.2515
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1204,28'
              BranchSideFuncs:
                - winpr_Handle_GetInfo.2515
                - CommLog_PrintEx
        - Branch String:   'winpr/libwinpr/comm/comm.c:1204,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1206,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1210,23'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:1201,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:1204,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/comm/comm.c:1206,3'
          Dst:             CommLog_PrintEx
    - functionName:    CommLog_PrintEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 200
      functionLinenumberEnd: 210
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - level
        - file
        - line
        - fkt
      BBCount:         8
      ICount:          59
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - CommInitialized
        - WLog_IsLevelActive
        - WLog_PrintMessageVA
      functionUses:    125
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:201,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:202,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessageVA
            - BranchSide:      'winpr/libwinpr/comm/comm.c:204,26'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessageVA
        - Branch String:   'winpr/libwinpr/comm/comm.c:204,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:205,3'
              BranchSideFuncs:
                - WLog_PrintMessageVA
            - BranchSide:      'winpr/libwinpr/comm/comm.c:206,10'
              BranchSideFuncs:
                - WLog_PrintMessageVA
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:201,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:204,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/comm/comm.c:208,2'
          Dst:             WLog_PrintMessageVA
    - functionName:    QueryCommDevice
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1116
      functionLinenumberEnd: 1172
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - lpDeviceName
        - lpTargetPath
        - ucchMax
      BBCount:         26
      ICount:          168
      EdgeCount:       35
      CyclomaticComplexity: 11
      functionsReached:
        - CommInitialized
        - EnterCriticalSection
        - LeaveCriticalSection
        - SetLastError
        - strcmp
        - strncpy
        - strnlen
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:1120,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1121,3'
              BranchSideFuncs:
                - EnterCriticalSection
                - LeaveCriticalSection
                - strnlen
                - strncpy
                - SetLastError
                - SetLastError
                - strcmp
                - SetLastError
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1123,6'
              BranchSideFuncs:
                - EnterCriticalSection
                - LeaveCriticalSection
                - strnlen
                - strncpy
                - SetLastError
                - SetLastError
                - strcmp
                - SetLastError
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:1123,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1125,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1129,6'
              BranchSideFuncs:
                - EnterCriticalSection
                - LeaveCriticalSection
                - strnlen
                - strncpy
                - SetLastError
                - SetLastError
                - strcmp
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:1129,27'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1129,30'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1131,3'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:1129,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1131,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1135,2'
              BranchSideFuncs:
                - EnterCriticalSection
                - LeaveCriticalSection
                - strnlen
                - strncpy
                - SetLastError
                - SetLastError
                - strcmp
        - Branch String:   'winpr/libwinpr/comm/comm.c:1138,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1140,7'
              BranchSideFuncs:
                - LeaveCriticalSection
                - strnlen
                - strncpy
                - SetLastError
                - SetLastError
                - strcmp
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1154,2'
              BranchSideFuncs:
                - LeaveCriticalSection
                - strnlen
                - strncpy
                - SetLastError
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:1140,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1142,16'
              BranchSideFuncs:
                - strcmp
                - LeaveCriticalSection
                - strnlen
                - strncpy
                - SetLastError
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1151,3'
              BranchSideFuncs:
                - LeaveCriticalSection
                - strnlen
                - strncpy
                - SetLastError
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:1142,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1144,24'
              BranchSideFuncs:
                - LeaveCriticalSection
                - strnlen
                - strncpy
                - SetLastError
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1148,4'
              BranchSideFuncs:
                - LeaveCriticalSection
                - strnlen
                - strncpy
                - SetLastError
                - SetLastError
                - strcmp
        - Branch String:   'winpr/libwinpr/comm/comm.c:1156,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1158,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1162,31'
              BranchSideFuncs:
                - strnlen
                - strncpy
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:1163,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1165,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1169,11'
              BranchSideFuncs:
                - strncpy
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:1118,2'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1120,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:1125,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1131,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1135,2'
          Dst:             EnterCriticalSection
        - Src:             'winpr/libwinpr/comm/comm.c:1142,8'
          Dst:             strcmp
        - Src:             'winpr/libwinpr/comm/comm.c:1154,2'
          Dst:             LeaveCriticalSection
        - Src:             'winpr/libwinpr/comm/comm.c:1158,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1162,22'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/comm/comm.c:1165,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1169,2'
          Dst:             strncpy
    - functionName:    DefineCommDevice
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1021
      functionLinenumberEnd: 1097
      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:1025,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1026,3'
              BranchSideFuncs:
                - EnterCriticalSection
                - _strdup
                - _strdup
                - LeaveCriticalSection
                - SetLastError
                - free
                - free
                - LeaveCriticalSection
                - calloc
                - SetLastError
                - strcmp
                - free
                - free
                - SetLastError
                - SetLastError
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1028,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:1030,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1032,3'
              BranchSideFuncs:
                - SetLastError
                - free
                - free
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1036,29'
              BranchSideFuncs:
                - _strdup
                - _strdup
                - LeaveCriticalSection
                - SetLastError
                - free
                - free
                - LeaveCriticalSection
                - calloc
                - SetLastError
                - strcmp
                - free
                - free
                - SetLastError
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:1038,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1040,3'
              BranchSideFuncs:
                - SetLastError
                - free
                - free
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1044,29'
              BranchSideFuncs:
                - _strdup
                - LeaveCriticalSection
                - SetLastError
                - free
                - free
                - LeaveCriticalSection
                - calloc
                - SetLastError
                - strcmp
                - free
                - free
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:1046,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1048,3'
              BranchSideFuncs:
                - SetLastError
                - free
                - free
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1052,6'
              BranchSideFuncs:
                - LeaveCriticalSection
                - SetLastError
                - free
                - free
                - LeaveCriticalSection
                - calloc
                - SetLastError
                - strcmp
                - free
                - free
        - Branch String:   'winpr/libwinpr/comm/comm.c:1053,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1055,7'
              BranchSideFuncs:
                - calloc
                - LeaveCriticalSection
                - SetLastError
                - free
                - free
                - LeaveCriticalSection
                - SetLastError
                - strcmp
                - free
                - free
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1084,6'
              BranchSideFuncs:
                - LeaveCriticalSection
                - SetLastError
                - free
                - free
                - LeaveCriticalSection
        - Branch String:   'winpr/libwinpr/comm/comm.c:1055,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1057,16'
              BranchSideFuncs:
                - strcmp
                - LeaveCriticalSection
                - SetLastError
                - free
                - free
                - LeaveCriticalSection
                - calloc
                - SetLastError
                - free
                - free
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1070,36'
              BranchSideFuncs:
                - calloc
                - LeaveCriticalSection
                - SetLastError
                - free
                - free
                - LeaveCriticalSection
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:1057,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1060,10'
              BranchSideFuncs:
                - free
                - free
                - LeaveCriticalSection
                - SetLastError
                - free
                - free
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1066,3'
              BranchSideFuncs:
                - LeaveCriticalSection
                - SetLastError
                - free
                - free
                - LeaveCriticalSection
                - calloc
                - SetLastError
                - strcmp
                - free
                - free
        - Branch String:   'winpr/libwinpr/comm/comm.c:1072,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1074,5'
              BranchSideFuncs:
                - SetLastError
                - free
                - free
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1078,28'
              BranchSideFuncs:
                - LeaveCriticalSection
                - SetLastError
                - free
                - free
                - LeaveCriticalSection
        - Branch String:   'winpr/libwinpr/comm/comm.c:1084,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1086,3'
              BranchSideFuncs:
                - SetLastError
                - free
                - free
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1090,2'
              BranchSideFuncs:
                - LeaveCriticalSection
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:1025,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:1028,2'
          Dst:             EnterCriticalSection
        - Src:             'winpr/libwinpr/comm/comm.c:1032,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1036,21'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/comm/comm.c:1040,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1044,21'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/comm/comm.c:1048,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1057,8'
          Dst:             strcmp
        - Src:             'winpr/libwinpr/comm/comm.c:1070,36'
          Dst:             calloc
        - Src:             'winpr/libwinpr/comm/comm.c:1074,5'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1086,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1090,2'
          Dst:             LeaveCriticalSection
        - Src:             'winpr/libwinpr/comm/comm.c:1095,2'
          Dst:             LeaveCriticalSection
    - functionName:    WaitCommEvent
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 995
      functionLinenumberEnd: 1009
      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_PrintEx
        - SetLastError
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:998,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:999,3'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1003,7'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:1003,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1004,3'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1006,2'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:998,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:1006,2'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:1007,2'
          Dst:             SetLastError
    - functionName:    TransmitCommChar
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 977
      functionLinenumberEnd: 991
      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_PrintEx
        - SetLastError
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:980,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:981,3'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:985,7'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:985,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:986,3'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:988,2'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:980,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:988,2'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:989,2'
          Dst:             SetLastError
    - functionName:    EscapeCommFunction
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 960
      functionLinenumberEnd: 974
      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_PrintEx
        - SetLastError
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:963,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:964,3'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:968,7'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:968,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:969,3'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:971,2'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:963,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:971,2'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:972,2'
          Dst:             SetLastError
    - functionName:    SetupComm
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 938
      functionLinenumberEnd: 957
      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_PrintEx
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:943,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:944,3'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm.c:946,21'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_PrintEx
        - Branch String:   'winpr/libwinpr/comm/comm.c:949,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:952,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:956,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:943,7'
          Dst:             CommIsHandleValid
        - Src:             'winpr/libwinpr/comm/comm.c:949,7'
          Dst:             CommDeviceIoControl
        - Src:             'winpr/libwinpr/comm/comm.c:952,3'
          Dst:             CommLog_PrintEx
    - functionName:    CommIsHandleValid
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1440
      functionLinenumberEnd: 1450
      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:1442,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1443,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1444,6'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:1444,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1446,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1449,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:1442,7'
          Dst:             CommIsHandled
        - Src:             'winpr/libwinpr/comm/comm.c:1446,3'
          Dst:             SetLastError
    - functionName:    PurgeComm
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 920
      functionLinenumberEnd: 935
      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_PrintEx
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:924,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:925,3'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm.c:927,27'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_PrintEx
        - Branch String:   'winpr/libwinpr/comm/comm.c:927,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:930,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:934,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:924,7'
          Dst:             CommIsHandleValid
        - Src:             'winpr/libwinpr/comm/comm.c:927,7'
          Dst:             CommDeviceIoControl
        - Src:             'winpr/libwinpr/comm/comm.c:930,3'
          Dst:             CommLog_PrintEx
    - functionName:    ClearCommError
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 903
      functionLinenumberEnd: 917
      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_PrintEx
        - SetLastError
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:906,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:907,3'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:911,7'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:911,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:912,3'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:914,2'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:906,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:914,2'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:915,2'
          Dst:             SetLastError
    - functionName:    ClearCommBreak
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 885
      functionLinenumberEnd: 899
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - hFile
      BBCount:         8
      ICount:          44
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - CommInitialized
        - CommLog_PrintEx
        - SetLastError
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:888,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:889,3'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:893,7'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:893,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:894,3'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:896,2'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:888,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:896,2'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:897,2'
          Dst:             SetLastError
    - functionName:    SetCommBreak
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 868
      functionLinenumberEnd: 882
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - hFile
      BBCount:         8
      ICount:          44
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - CommInitialized
        - CommLog_PrintEx
        - SetLastError
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:871,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:872,3'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:876,7'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:876,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:877,3'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:879,2'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:871,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:879,2'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:880,2'
          Dst:             SetLastError
    - functionName:    SetDefaultCommConfigW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 857
      functionLinenumberEnd: 865
      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_PrintEx
        - SetLastError
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:858,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:859,3'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:862,2'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:858,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:862,2'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:863,2'
          Dst:             SetLastError
    - functionName:    SetDefaultCommConfigA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 845
      functionLinenumberEnd: 853
      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_PrintEx
        - SetLastError
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:846,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:847,3'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:850,2'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:846,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:850,2'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:851,2'
          Dst:             SetLastError
    - functionName:    GetDefaultCommConfigW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 833
      functionLinenumberEnd: 841
      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_PrintEx
        - SetLastError
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:834,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:835,3'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:838,2'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:834,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:838,2'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:839,2'
          Dst:             SetLastError
    - functionName:    GetDefaultCommConfigA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 821
      functionLinenumberEnd: 829
      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_PrintEx
        - SetLastError
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:822,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:823,3'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:826,2'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:822,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:826,2'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:827,2'
          Dst:             SetLastError
    - functionName:    SetCommTimeouts
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 800
      functionLinenumberEnd: 817
      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_PrintEx
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:804,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:805,3'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm.c:809,27'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_PrintEx
        - Branch String:   'winpr/libwinpr/comm/comm.c:809,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:812,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:816,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:804,7'
          Dst:             CommIsHandleValid
        - Src:             'winpr/libwinpr/comm/comm.c:809,7'
          Dst:             CommDeviceIoControl
        - Src:             'winpr/libwinpr/comm/comm.c:812,3'
          Dst:             CommLog_PrintEx
    - functionName:    GetCommTimeouts
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 776
      functionLinenumberEnd: 793
      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_PrintEx
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:780,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:781,3'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm.c:785,27'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_PrintEx
        - Branch String:   'winpr/libwinpr/comm/comm.c:785,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:788,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:792,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:780,7'
          Dst:             CommIsHandleValid
        - Src:             'winpr/libwinpr/comm/comm.c:785,7'
          Dst:             CommDeviceIoControl
        - Src:             'winpr/libwinpr/comm/comm.c:788,3'
          Dst:             CommLog_PrintEx
    - functionName:    SetCommState
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 555
      functionLinenumberEnd: 769
      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_PrintEx
        - SetLastError
        - comm_ioctl_tcsetattr
        - tcgetattr
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:562,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:563,3'
              BranchSideFuncs:
                - SetLastError
                - CommDeviceIoControl
                - CommLog_PrintEx
                - CommDeviceIoControl
                - CommLog_PrintEx
                - CommDeviceIoControl
                - CommLog_PrintEx
                - CommDeviceIoControl
                - CommLog_PrintEx
                - CommDeviceIoControl
                - CommLog_PrintEx
                - tcgetattr
                - CommLog_PrintEx
                - comm_ioctl_tcsetattr
                - SetLastError
                - SetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm.c:565,7'
              BranchSideFuncs:
                - SetLastError
                - CommDeviceIoControl
                - CommLog_PrintEx
                - CommDeviceIoControl
                - CommLog_PrintEx
                - CommDeviceIoControl
                - CommLog_PrintEx
                - CommDeviceIoControl
                - CommLog_PrintEx
                - CommDeviceIoControl
                - CommLog_PrintEx
                - tcgetattr
                - CommLog_PrintEx
                - comm_ioctl_tcsetattr
                - SetLastError
                - SetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
        - Branch String:   'winpr/libwinpr/comm/comm.c:565,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:567,3'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_PrintEx
                - CommDeviceIoControl
                - CommLog_PrintEx
                - CommDeviceIoControl
                - CommLog_PrintEx
                - CommDeviceIoControl
                - CommLog_PrintEx
                - CommDeviceIoControl
                - CommLog_PrintEx
                - tcgetattr
                - CommLog_PrintEx
                - comm_ioctl_tcsetattr
                - SetLastError
                - SetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm.c:575,22'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_PrintEx
                - CommDeviceIoControl
                - CommLog_PrintEx
                - CommDeviceIoControl
                - CommLog_PrintEx
                - CommDeviceIoControl
                - CommLog_PrintEx
                - CommDeviceIoControl
                - CommLog_PrintEx
                - tcgetattr
                - CommLog_PrintEx
                - comm_ioctl_tcsetattr
                - SetLastError
                - SetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
        - Branch String:   'winpr/libwinpr/comm/comm.c:577,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:580,3'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_PrintEx
                - CommDeviceIoControl
                - CommLog_PrintEx
                - CommDeviceIoControl
                - CommLog_PrintEx
                - CommDeviceIoControl
                - CommLog_PrintEx
                - tcgetattr
                - CommLog_PrintEx
                - comm_ioctl_tcsetattr
                - SetLastError
                - SetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm.c:586,27'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_PrintEx
                - CommDeviceIoControl
                - CommLog_PrintEx
                - CommDeviceIoControl
                - CommLog_PrintEx
                - CommDeviceIoControl
                - CommLog_PrintEx
                - tcgetattr
                - CommLog_PrintEx
                - comm_ioctl_tcsetattr
                - SetLastError
                - SetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
        - Branch String:   'winpr/libwinpr/comm/comm.c:586,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:590,3'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_PrintEx
                - CommDeviceIoControl
                - CommLog_PrintEx
                - CommDeviceIoControl
                - CommLog_PrintEx
                - tcgetattr
                - CommLog_PrintEx
                - comm_ioctl_tcsetattr
                - SetLastError
                - SetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm.c:594,24'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_PrintEx
                - CommDeviceIoControl
                - CommLog_PrintEx
                - CommDeviceIoControl
                - CommLog_PrintEx
                - tcgetattr
                - CommLog_PrintEx
                - comm_ioctl_tcsetattr
                - SetLastError
                - SetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
        - Branch String:   'winpr/libwinpr/comm/comm.c:600,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:603,3'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_PrintEx
                - CommDeviceIoControl
                - CommLog_PrintEx
                - tcgetattr
                - CommLog_PrintEx
                - comm_ioctl_tcsetattr
                - SetLastError
                - SetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm.c:608,25'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_PrintEx
                - CommDeviceIoControl
                - CommLog_PrintEx
                - tcgetattr
                - CommLog_PrintEx
                - comm_ioctl_tcsetattr
                - SetLastError
                - SetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
        - Branch String:   'winpr/libwinpr/comm/comm.c:612,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:615,3'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_PrintEx
                - tcgetattr
                - CommLog_PrintEx
                - comm_ioctl_tcsetattr
                - SetLastError
                - SetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm.c:619,18'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_PrintEx
                - tcgetattr
                - CommLog_PrintEx
                - comm_ioctl_tcsetattr
                - SetLastError
                - SetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
        - Branch String:   'winpr/libwinpr/comm/comm.c:621,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:623,12'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_PrintEx
                - tcgetattr
                - CommLog_PrintEx
                - comm_ioctl_tcsetattr
                - SetLastError
                - SetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm.c:626,6'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_PrintEx
                - tcgetattr
                - CommLog_PrintEx
                - comm_ioctl_tcsetattr
                - SetLastError
                - SetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
        - Branch String:   'winpr/libwinpr/comm/comm.c:626,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:628,12'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_PrintEx
                - tcgetattr
                - CommLog_PrintEx
                - comm_ioctl_tcsetattr
                - SetLastError
                - SetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm.c:631,10'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_PrintEx
                - tcgetattr
                - CommLog_PrintEx
                - comm_ioctl_tcsetattr
                - SetLastError
                - SetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
        - Branch String:   'winpr/libwinpr/comm/comm.c:631,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:634,13'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_PrintEx
                - tcgetattr
                - CommLog_PrintEx
                - comm_ioctl_tcsetattr
                - SetLastError
                - SetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm.c:638,13'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_PrintEx
                - tcgetattr
                - CommLog_PrintEx
                - comm_ioctl_tcsetattr
                - SetLastError
                - SetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm.c:643,4'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_PrintEx
                - tcgetattr
                - CommLog_PrintEx
                - comm_ioctl_tcsetattr
                - SetLastError
                - SetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm.c:646,4'
              BranchSideFuncs:
                - CommLog_PrintEx
        - Branch String:   'winpr/libwinpr/comm/comm.c:651,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:653,12'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_PrintEx
                - tcgetattr
                - CommLog_PrintEx
                - comm_ioctl_tcsetattr
                - SetLastError
                - SetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm.c:656,6'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_PrintEx
                - tcgetattr
                - CommLog_PrintEx
                - comm_ioctl_tcsetattr
                - SetLastError
                - SetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
        - Branch String:   'winpr/libwinpr/comm/comm.c:656,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:658,12'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_PrintEx
                - tcgetattr
                - CommLog_PrintEx
                - comm_ioctl_tcsetattr
                - SetLastError
                - SetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm.c:661,6'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_PrintEx
                - tcgetattr
                - CommLog_PrintEx
                - comm_ioctl_tcsetattr
                - SetLastError
                - SetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
        - Branch String:   'winpr/libwinpr/comm/comm.c:661,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:663,12'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_PrintEx
                - tcgetattr
                - CommLog_PrintEx
                - comm_ioctl_tcsetattr
                - SetLastError
                - SetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm.c:666,6'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_PrintEx
                - tcgetattr
                - CommLog_PrintEx
                - comm_ioctl_tcsetattr
                - SetLastError
                - SetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
        - Branch String:   'winpr/libwinpr/comm/comm.c:666,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:668,12'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_PrintEx
                - tcgetattr
                - CommLog_PrintEx
                - comm_ioctl_tcsetattr
                - SetLastError
                - SetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm.c:671,6'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_PrintEx
                - tcgetattr
                - CommLog_PrintEx
                - comm_ioctl_tcsetattr
                - SetLastError
                - SetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
        - Branch String:   'winpr/libwinpr/comm/comm.c:671,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:673,12'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_PrintEx
                - tcgetattr
                - CommLog_PrintEx
                - comm_ioctl_tcsetattr
                - SetLastError
                - SetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm.c:676,6'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_PrintEx
                - tcgetattr
                - CommLog_PrintEx
                - comm_ioctl_tcsetattr
                - SetLastError
                - SetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
        - Branch String:   'winpr/libwinpr/comm/comm.c:676,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:678,12'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_PrintEx
                - tcgetattr
                - CommLog_PrintEx
                - comm_ioctl_tcsetattr
                - SetLastError
                - SetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm.c:681,10'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_PrintEx
                - tcgetattr
                - CommLog_PrintEx
                - comm_ioctl_tcsetattr
                - SetLastError
                - SetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
        - Branch String:   'winpr/libwinpr/comm/comm.c:681,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:684,4'
              BranchSideFuncs:
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm.c:689,13'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_PrintEx
                - tcgetattr
                - CommLog_PrintEx
                - comm_ioctl_tcsetattr
                - SetLastError
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:693,13'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_PrintEx
                - tcgetattr
                - CommLog_PrintEx
                - comm_ioctl_tcsetattr
                - SetLastError
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:698,4'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_PrintEx
                - tcgetattr
                - CommLog_PrintEx
                - comm_ioctl_tcsetattr
                - SetLastError
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:701,4'
              BranchSideFuncs:
                - CommLog_PrintEx
        - Branch String:   'winpr/libwinpr/comm/comm.c:706,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:708,12'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_PrintEx
                - tcgetattr
                - CommLog_PrintEx
                - comm_ioctl_tcsetattr
                - SetLastError
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:713,22'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_PrintEx
                - tcgetattr
                - CommLog_PrintEx
                - comm_ioctl_tcsetattr
                - SetLastError
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:716,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:719,3'
              BranchSideFuncs:
                - tcgetattr
                - CommLog_PrintEx
                - comm_ioctl_tcsetattr
                - SetLastError
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:725,16'
              BranchSideFuncs:
                - tcgetattr
                - CommLog_PrintEx
                - comm_ioctl_tcsetattr
                - SetLastError
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:725,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:728,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:732,6'
              BranchSideFuncs:
                - CommLog_PrintEx
                - comm_ioctl_tcsetattr
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:732,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:734,19'
              BranchSideFuncs:
                - comm_ioctl_tcsetattr
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:738,19'
              BranchSideFuncs:
                - CommLog_PrintEx
                - comm_ioctl_tcsetattr
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:742,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:744,19'
              BranchSideFuncs:
                - comm_ioctl_tcsetattr
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:748,19'
              BranchSideFuncs:
                - comm_ioctl_tcsetattr
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:762,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:764,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:768,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:562,7'
          Dst:             CommIsHandleValid
        - Src:             'winpr/libwinpr/comm/comm.c:567,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:577,7'
          Dst:             CommDeviceIoControl
        - Src:             'winpr/libwinpr/comm/comm.c:580,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:586,7'
          Dst:             CommDeviceIoControl
        - Src:             'winpr/libwinpr/comm/comm.c:590,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:600,7'
          Dst:             CommDeviceIoControl
        - Src:             'winpr/libwinpr/comm/comm.c:603,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:612,7'
          Dst:             CommDeviceIoControl
        - Src:             'winpr/libwinpr/comm/comm.c:615,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:646,4'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:684,4'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:701,4'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:716,7'
          Dst:             CommDeviceIoControl
        - Src:             'winpr/libwinpr/comm/comm.c:719,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:725,6'
          Dst:             tcgetattr
        - Src:             'winpr/libwinpr/comm/comm.c:728,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:739,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:762,6'
          Dst:             comm_ioctl_tcsetattr
        - Src:             'winpr/libwinpr/comm/comm.c:764,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:    13
      BranchProfiles:  []
      Callsites:       []
    - functionName:    GetCommState
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 402
      functionLinenumberEnd: 541
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - hFile
        - lpDCB
      BBCount:         80
      ICount:          630
      EdgeCount:       100
      CyclomaticComplexity: 22
      functionsReached:
        - CommDeviceIoControl
        - CommIsHandleValid
        - CommLog_PrintEx
        - SetLastError
        - calloc
        - tcgetattr
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:408,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:409,3'
              BranchSideFuncs:
                - SetLastError
                - tcgetattr
                - calloc
                - CommDeviceIoControl
                - CommLog_PrintEx
                - free
                - CommLog_PrintEx
                - CommDeviceIoControl
                - CommLog_PrintEx
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - CommDeviceIoControl
                - CommLog_PrintEx
                - CommDeviceIoControl
                - CommLog_PrintEx
                - free
                - SetLastError
                - SetLastError
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:411,7'
              BranchSideFuncs:
                - SetLastError
                - tcgetattr
                - calloc
                - CommDeviceIoControl
                - CommLog_PrintEx
                - free
                - CommLog_PrintEx
                - CommDeviceIoControl
                - CommLog_PrintEx
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - CommDeviceIoControl
                - CommLog_PrintEx
                - CommDeviceIoControl
                - CommLog_PrintEx
                - free
                - SetLastError
                - SetLastError
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:411,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:413,3'
              BranchSideFuncs:
                - tcgetattr
                - calloc
                - CommDeviceIoControl
                - CommLog_PrintEx
                - free
                - CommLog_PrintEx
                - CommDeviceIoControl
                - CommLog_PrintEx
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - CommDeviceIoControl
                - CommLog_PrintEx
                - CommDeviceIoControl
                - CommLog_PrintEx
                - free
                - SetLastError
                - SetLastError
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:417,6'
              BranchSideFuncs:
                - tcgetattr
                - calloc
                - CommDeviceIoControl
                - CommLog_PrintEx
                - free
                - CommLog_PrintEx
                - CommDeviceIoControl
                - CommLog_PrintEx
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - CommDeviceIoControl
                - CommLog_PrintEx
                - CommDeviceIoControl
                - CommLog_PrintEx
                - free
                - SetLastError
                - SetLastError
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:417,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:419,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:423,16'
              BranchSideFuncs:
                - tcgetattr
                - calloc
                - CommDeviceIoControl
                - CommLog_PrintEx
                - free
                - CommLog_PrintEx
                - CommDeviceIoControl
                - CommLog_PrintEx
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - CommDeviceIoControl
                - CommLog_PrintEx
                - CommDeviceIoControl
                - CommLog_PrintEx
                - free
                - SetLastError
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:423,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:425,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:429,31'
              BranchSideFuncs:
                - calloc
                - CommDeviceIoControl
                - CommLog_PrintEx
                - free
                - CommLog_PrintEx
                - CommDeviceIoControl
                - CommLog_PrintEx
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - CommDeviceIoControl
                - CommLog_PrintEx
                - CommDeviceIoControl
                - CommLog_PrintEx
                - free
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:431,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:433,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:438,26'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_PrintEx
                - free
                - CommLog_PrintEx
                - CommDeviceIoControl
                - CommLog_PrintEx
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - CommDeviceIoControl
                - CommLog_PrintEx
                - CommDeviceIoControl
                - CommLog_PrintEx
                - free
        - Branch String:   'winpr/libwinpr/comm/comm.c:441,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:444,3'
              BranchSideFuncs:
                - CommLog_PrintEx
                - CommDeviceIoControl
                - CommLog_PrintEx
                - free
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - CommDeviceIoControl
                - CommLog_PrintEx
                - CommDeviceIoControl
                - CommLog_PrintEx
                - free
            - BranchSide:      'winpr/libwinpr/comm/comm.c:448,34'
              BranchSideFuncs:
                - CommLog_PrintEx
                - CommDeviceIoControl
                - CommLog_PrintEx
                - free
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - CommDeviceIoControl
                - CommLog_PrintEx
                - CommDeviceIoControl
                - CommLog_PrintEx
                - free
        - Branch String:   'winpr/libwinpr/comm/comm.c:451,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:453,3'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_PrintEx
                - free
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - CommDeviceIoControl
                - CommLog_PrintEx
                - CommDeviceIoControl
                - CommLog_PrintEx
                - free
            - BranchSide:      'winpr/libwinpr/comm/comm.c:456,38'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_PrintEx
                - free
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - CommDeviceIoControl
                - CommLog_PrintEx
                - CommDeviceIoControl
                - CommLog_PrintEx
                - free
        - Branch String:   'winpr/libwinpr/comm/comm.c:459,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:462,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - CommDeviceIoControl
                - CommLog_PrintEx
                - free
                - CommDeviceIoControl
                - CommLog_PrintEx
                - free
            - BranchSide:      'winpr/libwinpr/comm/comm.c:466,39'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - CommDeviceIoControl
                - CommLog_PrintEx
                - free
                - CommDeviceIoControl
                - CommLog_PrintEx
                - free
        - Branch String:   'winpr/libwinpr/comm/comm.c:469,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:471,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - CommDeviceIoControl
                - CommLog_PrintEx
                - free
                - CommDeviceIoControl
                - CommLog_PrintEx
                - free
            - BranchSide:      'winpr/libwinpr/comm/comm.c:473,20'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - CommDeviceIoControl
                - CommLog_PrintEx
                - free
                - CommDeviceIoControl
                - CommLog_PrintEx
                - free
        - Branch String:   'winpr/libwinpr/comm/comm.c:473,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:475,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - CommDeviceIoControl
                - CommLog_PrintEx
                - free
                - CommDeviceIoControl
                - CommLog_PrintEx
                - free
            - BranchSide:      'winpr/libwinpr/comm/comm.c:479,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - CommDeviceIoControl
                - CommLog_PrintEx
                - free
                - CommDeviceIoControl
                - CommLog_PrintEx
                - free
        - Branch String:   'winpr/libwinpr/comm/comm.c:489,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:491,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - CommDeviceIoControl
                - CommLog_PrintEx
                - free
                - CommDeviceIoControl
                - CommLog_PrintEx
                - free
            - BranchSide:      'winpr/libwinpr/comm/comm.c:493,20'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - CommDeviceIoControl
                - CommLog_PrintEx
                - free
                - CommDeviceIoControl
                - CommLog_PrintEx
                - free
        - Branch String:   'winpr/libwinpr/comm/comm.c:493,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:495,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - CommDeviceIoControl
                - CommLog_PrintEx
                - free
                - CommDeviceIoControl
                - CommLog_PrintEx
                - free
            - BranchSide:      'winpr/libwinpr/comm/comm.c:499,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - CommDeviceIoControl
                - CommLog_PrintEx
                - free
                - CommDeviceIoControl
                - CommLog_PrintEx
                - free
        - Branch String:   'winpr/libwinpr/comm/comm.c:507,23'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:507,23'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - CommDeviceIoControl
                - CommLog_PrintEx
                - free
                - CommDeviceIoControl
                - CommLog_PrintEx
                - free
            - BranchSide:      'winpr/libwinpr/comm/comm.c:507,23'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm.c:507,23'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:507,23'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - CommDeviceIoControl
                - CommLog_PrintEx
                - free
                - CommDeviceIoControl
                - CommLog_PrintEx
                - free
            - BranchSide:      'winpr/libwinpr/comm/comm.c:507,23'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - CommDeviceIoControl
                - CommLog_PrintEx
                - free
                - CommDeviceIoControl
                - CommLog_PrintEx
                - free
        - Branch String:   'winpr/libwinpr/comm/comm.c:507,23'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:507,23'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - CommDeviceIoControl
                - CommLog_PrintEx
                - free
                - CommDeviceIoControl
                - CommLog_PrintEx
                - free
            - BranchSide:      'winpr/libwinpr/comm/comm.c:507,23'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - CommDeviceIoControl
                - CommLog_PrintEx
                - free
                - CommDeviceIoControl
                - CommLog_PrintEx
                - free
        - Branch String:   'winpr/libwinpr/comm/comm.c:507,23'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:507,23'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - CommDeviceIoControl
                - CommLog_PrintEx
                - free
                - CommDeviceIoControl
                - CommLog_PrintEx
                - free
            - BranchSide:      'winpr/libwinpr/comm/comm.c:507,23'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm.c:507,23'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:507,23'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - CommDeviceIoControl
                - CommLog_PrintEx
                - free
                - CommDeviceIoControl
                - CommLog_PrintEx
                - free
            - BranchSide:      'winpr/libwinpr/comm/comm.c:507,23'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm.c:508,24'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:508,24'
              BranchSideFuncs:
                - winpr_int_assert
                - CommDeviceIoControl
                - CommLog_PrintEx
                - free
                - CommDeviceIoControl
                - CommLog_PrintEx
                - free
            - BranchSide:      'winpr/libwinpr/comm/comm.c:508,24'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm.c:508,24'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:508,24'
              BranchSideFuncs:
                - winpr_int_assert
                - CommDeviceIoControl
                - CommLog_PrintEx
                - free
                - CommDeviceIoControl
                - CommLog_PrintEx
                - free
            - BranchSide:      'winpr/libwinpr/comm/comm.c:508,24'
              BranchSideFuncs:
                - winpr_int_assert
                - CommDeviceIoControl
                - CommLog_PrintEx
                - free
                - CommDeviceIoControl
                - CommLog_PrintEx
                - free
        - Branch String:   'winpr/libwinpr/comm/comm.c:508,24'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:508,24'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_PrintEx
                - free
                - CommDeviceIoControl
                - CommLog_PrintEx
                - free
            - BranchSide:      'winpr/libwinpr/comm/comm.c:508,24'
              BranchSideFuncs:
                - winpr_int_assert
                - CommDeviceIoControl
                - CommLog_PrintEx
                - free
                - CommDeviceIoControl
                - CommLog_PrintEx
                - free
        - Branch String:   'winpr/libwinpr/comm/comm.c:508,24'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:508,24'
              BranchSideFuncs:
                - winpr_int_assert
                - CommDeviceIoControl
                - CommLog_PrintEx
                - free
                - CommDeviceIoControl
                - CommLog_PrintEx
                - free
            - BranchSide:      'winpr/libwinpr/comm/comm.c:508,24'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm.c:508,24'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:508,24'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_PrintEx
                - free
                - CommDeviceIoControl
                - CommLog_PrintEx
                - free
            - BranchSide:      'winpr/libwinpr/comm/comm.c:508,24'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm.c:511,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:514,3'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_PrintEx
                - free
                - free
            - BranchSide:      'winpr/libwinpr/comm/comm.c:518,37'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_PrintEx
                - free
                - free
        - Branch String:   'winpr/libwinpr/comm/comm.c:523,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:526,3'
              BranchSideFuncs:
                - free
            - BranchSide:      'winpr/libwinpr/comm/comm.c:530,36'
              BranchSideFuncs:
                - free
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:408,7'
          Dst:             CommIsHandleValid
        - Src:             'winpr/libwinpr/comm/comm.c:413,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:419,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:423,6'
          Dst:             tcgetattr
        - Src:             'winpr/libwinpr/comm/comm.c:425,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:429,21'
          Dst:             calloc
        - Src:             'winpr/libwinpr/comm/comm.c:433,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:441,7'
          Dst:             CommDeviceIoControl
        - Src:             'winpr/libwinpr/comm/comm.c:444,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:453,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:459,7'
          Dst:             CommDeviceIoControl
        - Src:             'winpr/libwinpr/comm/comm.c:462,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:507,23'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm.c:507,23'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm.c:508,24'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm.c:508,24'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm.c:511,7'
          Dst:             CommDeviceIoControl
        - Src:             'winpr/libwinpr/comm/comm.c:514,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:523,7'
          Dst:             CommDeviceIoControl
        - Src:             'winpr/libwinpr/comm/comm.c:526,3'
          Dst:             CommLog_PrintEx
    - functionName:    GetCommProperties
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 375
      functionLinenumberEnd: 390
      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_PrintEx
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:379,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:380,3'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm.c:382,27'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_PrintEx
        - Branch String:   'winpr/libwinpr/comm/comm.c:382,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:385,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:389,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:379,7'
          Dst:             CommIsHandleValid
        - Src:             'winpr/libwinpr/comm/comm.c:382,7'
          Dst:             CommDeviceIoControl
        - Src:             'winpr/libwinpr/comm/comm.c:385,3'
          Dst:             CommLog_PrintEx
    - functionName:    GetCommModemStatus
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 353
      functionLinenumberEnd: 367
      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_PrintEx
        - SetLastError
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:356,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:357,3'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:361,7'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:361,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:362,3'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:364,2'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:356,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:364,2'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:365,2'
          Dst:             SetLastError
    - functionName:    SetCommMask
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 336
      functionLinenumberEnd: 350
      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_PrintEx
        - SetLastError
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:339,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:340,3'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:344,7'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:344,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:345,3'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:347,2'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:339,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:347,2'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:348,2'
          Dst:             SetLastError
    - functionName:    GetCommMask
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 319
      functionLinenumberEnd: 333
      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_PrintEx
        - SetLastError
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:322,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:323,3'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:327,7'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:327,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:328,3'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:330,2'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:322,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:330,2'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:331,2'
          Dst:             SetLastError
    - functionName:    SetCommConfig
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 302
      functionLinenumberEnd: 316
      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_PrintEx
        - SetLastError
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:305,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:306,3'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:310,7'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:310,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:311,3'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:313,2'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:305,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:313,2'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:314,2'
          Dst:             SetLastError
    - functionName:    GetCommConfig
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 284
      functionLinenumberEnd: 298
      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_PrintEx
        - SetLastError
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:287,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:288,3'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:292,7'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:292,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:293,3'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:295,2'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:287,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:295,2'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:296,2'
          Dst:             SetLastError
    - functionName:    CommConfigDialogW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 272
      functionLinenumberEnd: 280
      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_PrintEx
        - SetLastError
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:273,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:274,3'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:277,2'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:273,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:277,2'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:278,2'
          Dst:             SetLastError
    - functionName:    CommConfigDialogA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 260
      functionLinenumberEnd: 268
      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_PrintEx
        - SetLastError
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:261,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:262,3'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:265,2'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:261,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:265,2'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:266,2'
          Dst:             SetLastError
    - functionName:    BuildCommDCBAndTimeoutsW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 248
      functionLinenumberEnd: 256
      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_PrintEx
        - SetLastError
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:249,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:250,3'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:253,2'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:249,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:253,2'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:254,2'
          Dst:             SetLastError
    - functionName:    BuildCommDCBAndTimeoutsA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 236
      functionLinenumberEnd: 244
      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_PrintEx
        - SetLastError
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:237,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:238,3'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:241,2'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:237,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:241,2'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:242,2'
          Dst:             SetLastError
    - functionName:    BuildCommDCBW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 224
      functionLinenumberEnd: 232
      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_PrintEx
        - 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_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:229,2'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:225,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:229,2'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:230,2'
          Dst:             SetLastError
    - functionName:    BuildCommDCBA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 213
      functionLinenumberEnd: 221
      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_PrintEx
        - SetLastError
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:214,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:215,3'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:218,2'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:214,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:218,2'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:219,2'
          Dst:             SetLastError
    - functionName:    CommCreateFileA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1254
      functionLinenumberEnd: 1429
      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:         44
      ICount:          332
      EdgeCount:       62
      CyclomaticComplexity: 20
      functionsReached:
        - CloseHandle
        - CommInitialized
        - CommLog_PrintEx
        - CommUpdateIOCount
        - InitializeCriticalSection
        - QueryCommDevice
        - SetLastError
        - WINPR_HANDLE_SET_TYPE_AND_MODE
        - calloc
        - comm_ioctl_tcsetattr
        - eventfd
        - open64
        - stat64
        - tcgetattr
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:1260,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1261,3'
              BranchSideFuncs:
                - QueryCommDevice
                - stat64
                - CommLog_PrintEx
                - SetLastError
                - calloc
                - WINPR_HANDLE_SET_TYPE_AND_MODE.2514
                - open64
                - open64
                - eventfd
                - InitializeCriticalSection
                - open64
                - eventfd
                - InitializeCriticalSection
                - InitializeCriticalSection
                - CommUpdateIOCount
                - tcgetattr
                - comm_ioctl_tcsetattr
                - SetLastError
                - CloseHandle
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - SetLastError
                - SetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - SetLastError
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1263,6'
              BranchSideFuncs:
                - QueryCommDevice
                - stat64
                - CommLog_PrintEx
                - SetLastError
                - calloc
                - WINPR_HANDLE_SET_TYPE_AND_MODE.2514
                - open64
                - open64
                - eventfd
                - InitializeCriticalSection
                - open64
                - eventfd
                - InitializeCriticalSection
                - InitializeCriticalSection
                - CommUpdateIOCount
                - tcgetattr
                - comm_ioctl_tcsetattr
                - SetLastError
                - CloseHandle
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - SetLastError
                - SetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - SetLastError
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
        - Branch String:   'winpr/libwinpr/comm/comm.c:1263,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1265,3'
              BranchSideFuncs:
                - CommLog_PrintEx
                - QueryCommDevice
                - stat64
                - CommLog_PrintEx
                - SetLastError
                - calloc
                - WINPR_HANDLE_SET_TYPE_AND_MODE.2514
                - open64
                - open64
                - eventfd
                - InitializeCriticalSection
                - open64
                - eventfd
                - InitializeCriticalSection
                - InitializeCriticalSection
                - CommUpdateIOCount
                - tcgetattr
                - comm_ioctl_tcsetattr
                - SetLastError
                - CloseHandle
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - SetLastError
                - SetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - SetLastError
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1269,6'
              BranchSideFuncs:
                - QueryCommDevice
                - stat64
                - CommLog_PrintEx
                - SetLastError
                - calloc
                - WINPR_HANDLE_SET_TYPE_AND_MODE.2514
                - open64
                - open64
                - eventfd
                - InitializeCriticalSection
                - open64
                - eventfd
                - InitializeCriticalSection
                - InitializeCriticalSection
                - CommUpdateIOCount
                - tcgetattr
                - comm_ioctl_tcsetattr
                - SetLastError
                - CloseHandle
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - SetLastError
                - SetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - SetLastError
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:1269,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1271,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1278,6'
              BranchSideFuncs:
                - QueryCommDevice
                - stat64
                - CommLog_PrintEx
                - SetLastError
                - calloc
                - WINPR_HANDLE_SET_TYPE_AND_MODE.2514
                - open64
                - open64
                - eventfd
                - InitializeCriticalSection
                - open64
                - eventfd
                - InitializeCriticalSection
                - InitializeCriticalSection
                - CommUpdateIOCount
                - tcgetattr
                - comm_ioctl_tcsetattr
                - SetLastError
                - CloseHandle
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - SetLastError
                - SetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - SetLastError
                - SetLastError
                - CommLog_PrintEx
        - Branch String:   'winpr/libwinpr/comm/comm.c:1278,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1280,3'
              BranchSideFuncs:
                - CommLog_PrintEx
                - QueryCommDevice
                - stat64
                - CommLog_PrintEx
                - SetLastError
                - calloc
                - WINPR_HANDLE_SET_TYPE_AND_MODE.2514
                - open64
                - open64
                - eventfd
                - InitializeCriticalSection
                - open64
                - eventfd
                - InitializeCriticalSection
                - InitializeCriticalSection
                - CommUpdateIOCount
                - tcgetattr
                - comm_ioctl_tcsetattr
                - SetLastError
                - CloseHandle
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - SetLastError
                - SetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - SetLastError
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1284,6'
              BranchSideFuncs:
                - QueryCommDevice
                - stat64
                - CommLog_PrintEx
                - SetLastError
                - calloc
                - WINPR_HANDLE_SET_TYPE_AND_MODE.2514
                - open64
                - open64
                - eventfd
                - InitializeCriticalSection
                - open64
                - eventfd
                - InitializeCriticalSection
                - InitializeCriticalSection
                - CommUpdateIOCount
                - tcgetattr
                - comm_ioctl_tcsetattr
                - SetLastError
                - CloseHandle
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - SetLastError
                - SetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - SetLastError
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:1284,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1286,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1290,22'
              BranchSideFuncs:
                - QueryCommDevice
                - stat64
                - CommLog_PrintEx
                - SetLastError
                - calloc
                - WINPR_HANDLE_SET_TYPE_AND_MODE.2514
                - open64
                - open64
                - eventfd
                - InitializeCriticalSection
                - open64
                - eventfd
                - InitializeCriticalSection
                - InitializeCriticalSection
                - CommUpdateIOCount
                - tcgetattr
                - comm_ioctl_tcsetattr
                - SetLastError
                - CloseHandle
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - SetLastError
                - SetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:1290,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1293,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1296,11'
              BranchSideFuncs:
                - stat64
                - CommLog_PrintEx
                - SetLastError
                - calloc
                - WINPR_HANDLE_SET_TYPE_AND_MODE.2514
                - open64
                - open64
                - eventfd
                - InitializeCriticalSection
                - open64
                - eventfd
                - InitializeCriticalSection
                - InitializeCriticalSection
                - CommUpdateIOCount
                - tcgetattr
                - comm_ioctl_tcsetattr
                - SetLastError
                - CloseHandle
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - SetLastError
                - SetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:1296,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1298,3'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1303,7'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
                - calloc
                - WINPR_HANDLE_SET_TYPE_AND_MODE.2514
                - open64
                - open64
                - eventfd
                - InitializeCriticalSection
                - open64
                - eventfd
                - InitializeCriticalSection
                - InitializeCriticalSection
                - CommUpdateIOCount
                - tcgetattr
                - comm_ioctl_tcsetattr
                - SetLastError
                - CloseHandle
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - SetLastError
                - SetLastError
                - CommLog_PrintEx
        - Branch String:   'winpr/libwinpr/comm/comm.c:1303,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1305,3'
              BranchSideFuncs:
                - calloc
                - WINPR_HANDLE_SET_TYPE_AND_MODE.2514
                - open64
                - open64
                - eventfd
                - InitializeCriticalSection
                - open64
                - eventfd
                - InitializeCriticalSection
                - InitializeCriticalSection
                - CommUpdateIOCount
                - tcgetattr
                - comm_ioctl_tcsetattr
                - SetLastError
                - CloseHandle
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - SetLastError
                - SetLastError
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1310,6'
              BranchSideFuncs:
                - calloc
                - WINPR_HANDLE_SET_TYPE_AND_MODE.2514
                - open64
                - open64
                - eventfd
                - InitializeCriticalSection
                - open64
                - eventfd
                - InitializeCriticalSection
                - InitializeCriticalSection
                - CommUpdateIOCount
                - tcgetattr
                - comm_ioctl_tcsetattr
                - SetLastError
                - CloseHandle
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - SetLastError
                - SetLastError
                - CommLog_PrintEx
        - Branch String:   'winpr/libwinpr/comm/comm.c:1310,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1312,3'
              BranchSideFuncs:
                - CommLog_PrintEx
                - calloc
                - WINPR_HANDLE_SET_TYPE_AND_MODE.2514
                - open64
                - open64
                - eventfd
                - InitializeCriticalSection
                - open64
                - eventfd
                - InitializeCriticalSection
                - InitializeCriticalSection
                - CommUpdateIOCount
                - tcgetattr
                - comm_ioctl_tcsetattr
                - SetLastError
                - CloseHandle
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - SetLastError
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1316,6'
              BranchSideFuncs:
                - calloc
                - WINPR_HANDLE_SET_TYPE_AND_MODE.2514
                - open64
                - open64
                - eventfd
                - InitializeCriticalSection
                - open64
                - eventfd
                - InitializeCriticalSection
                - InitializeCriticalSection
                - CommUpdateIOCount
                - tcgetattr
                - comm_ioctl_tcsetattr
                - SetLastError
                - CloseHandle
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - SetLastError
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:1316,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1318,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1322,23'
              BranchSideFuncs:
                - calloc
                - WINPR_HANDLE_SET_TYPE_AND_MODE.2514
                - open64
                - open64
                - eventfd
                - InitializeCriticalSection
                - open64
                - eventfd
                - InitializeCriticalSection
                - InitializeCriticalSection
                - CommUpdateIOCount
                - tcgetattr
                - comm_ioctl_tcsetattr
                - SetLastError
                - CloseHandle
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:1324,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1326,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1330,33'
              BranchSideFuncs:
                - WINPR_HANDLE_SET_TYPE_AND_MODE.2514
                - open64
                - open64
                - eventfd
                - InitializeCriticalSection
                - open64
                - eventfd
                - InitializeCriticalSection
                - InitializeCriticalSection
                - CommUpdateIOCount
                - tcgetattr
                - comm_ioctl_tcsetattr
                - SetLastError
                - CloseHandle
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:1335,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1337,3'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
                - CloseHandle
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1342,24'
              BranchSideFuncs:
                - open64
                - eventfd
                - InitializeCriticalSection
                - open64
                - eventfd
                - InitializeCriticalSection
                - InitializeCriticalSection
                - CommUpdateIOCount
                - tcgetattr
                - comm_ioctl_tcsetattr
                - SetLastError
                - CloseHandle
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:1344,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1346,3'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
                - CloseHandle
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1352,25'
              BranchSideFuncs:
                - eventfd
                - InitializeCriticalSection
                - open64
                - eventfd
                - InitializeCriticalSection
                - InitializeCriticalSection
                - CommUpdateIOCount
                - tcgetattr
                - comm_ioctl_tcsetattr
                - SetLastError
                - CloseHandle
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:1356,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1358,3'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
                - CloseHandle
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1363,29'
              BranchSideFuncs:
                - InitializeCriticalSection
                - open64
                - eventfd
                - InitializeCriticalSection
                - InitializeCriticalSection
                - CommUpdateIOCount
                - tcgetattr
                - comm_ioctl_tcsetattr
                - SetLastError
                - CloseHandle
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:1366,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1368,3'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
                - CloseHandle
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1374,26'
              BranchSideFuncs:
                - eventfd
                - InitializeCriticalSection
                - InitializeCriticalSection
                - CommUpdateIOCount
                - tcgetattr
                - comm_ioctl_tcsetattr
                - SetLastError
                - CloseHandle
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:1378,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1380,3'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
                - CloseHandle
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1385,29'
              BranchSideFuncs:
                - InitializeCriticalSection
                - InitializeCriticalSection
                - CommUpdateIOCount
                - tcgetattr
                - comm_ioctl_tcsetattr
                - SetLastError
                - CloseHandle
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:1397,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1399,3'
              BranchSideFuncs:
                - SetLastError
                - CloseHandle
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1403,18'
              BranchSideFuncs:
                - comm_ioctl_tcsetattr
                - SetLastError
                - CloseHandle
        - Branch String:   'winpr/libwinpr/comm/comm.c:1417,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1419,3'
              BranchSideFuncs:
                - SetLastError
                - CloseHandle
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1423,17'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:1260,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:1265,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:1271,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1280,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:1286,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1290,6'
          Dst:             QueryCommDevice
        - Src:             'winpr/libwinpr/comm/comm.c:1296,6'
          Dst:             stat64
        - Src:             'winpr/libwinpr/comm/comm.c:1298,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:1299,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1305,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:1306,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1312,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:1318,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1322,23'
          Dst:             calloc
        - Src:             'winpr/libwinpr/comm/comm.c:1326,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1330,2'
          Dst:             WINPR_HANDLE_SET_TYPE_AND_MODE
        - Src:             'winpr/libwinpr/comm/comm.c:1333,14'
          Dst:             open64
        - Src:             'winpr/libwinpr/comm/comm.c:1337,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:1338,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1342,19'
          Dst:             open64
        - Src:             'winpr/libwinpr/comm/comm.c:1346,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:1347,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1352,25'
          Dst:             eventfd
        - Src:             'winpr/libwinpr/comm/comm.c:1358,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:1359,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1363,2'
          Dst:             InitializeCriticalSection
        - Src:             'winpr/libwinpr/comm/comm.c:1364,20'
          Dst:             open64
        - Src:             'winpr/libwinpr/comm/comm.c:1368,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:1369,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1374,26'
          Dst:             eventfd
        - Src:             'winpr/libwinpr/comm/comm.c:1380,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:1381,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1385,2'
          Dst:             InitializeCriticalSection
        - Src:             'winpr/libwinpr/comm/comm.c:1388,2'
          Dst:             InitializeCriticalSection
        - Src:             'winpr/libwinpr/comm/comm.c:1390,8'
          Dst:             CommUpdateIOCount
        - Src:             'winpr/libwinpr/comm/comm.c:1397,6'
          Dst:             tcgetattr
        - Src:             'winpr/libwinpr/comm/comm.c:1399,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1417,6'
          Dst:             comm_ioctl_tcsetattr
        - Src:             'winpr/libwinpr/comm/comm.c:1419,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1426,53'
          Dst:             CloseHandle
    - functionName:    IsCommDevice
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1178
      functionLinenumberEnd: 1190
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpDeviceName
      BBCount:         8
      ICount:          43
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - CommInitialized
        - QueryCommDevice
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:1181,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1182,3'
              BranchSideFuncs:
                - QueryCommDevice
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1184,22'
              BranchSideFuncs:
                - QueryCommDevice
        - Branch String:   'winpr/libwinpr/comm/comm.c:1184,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1186,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1189,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:1181,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:1184,6'
          Dst:             QueryCommDevice
    - functionName:    GetCommHandleCreator
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 153
      functionLinenumberEnd: 157
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          4
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    _comm_serial_ioctl_name
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 131
      functionLinenumberEnd: 140
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - number
      BBCount:         8
      ICount:          50
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    4
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:132,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:134,57'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:139,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm.c:135,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:136,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:137,2'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    comm_ioctl_modem_flag_str
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_ioctl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 711
      functionLinenumberEnd: 733
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - flag
      BBCount:         11
      ICount:          58
      EdgeCount:       20
      CyclomaticComplexity: 11
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:712,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:715,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:717,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:719,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:721,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:723,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:725,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:727,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:729,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:731,4'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    comm_ioctl_modem_status_string
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_ioctl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 736
      functionLinenumberEnd: 757
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - status
        - buffer
        - size
      BBCount:         10
      ICount:          86
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - comm_ioctl_modem_flag_str
        - snprintf
        - winpr_str_append
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:744,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:746,28'
              BranchSideFuncs:
                - snprintf
                - winpr_str_append
                - comm_ioctl_modem_flag_str
                - winpr_str_append
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:754,7'
              BranchSideFuncs:
                - snprintf
                - winpr_str_append
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:747,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:749,47'
              BranchSideFuncs:
                - comm_ioctl_modem_flag_str
                - winpr_str_append
                - snprintf
                - winpr_str_append
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:752,2'
              BranchSideFuncs:
                - snprintf
                - winpr_str_append
                - comm_ioctl_modem_flag_str
                - winpr_str_append
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:741,2'
          Dst:             winpr_str_append
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:749,21'
          Dst:             comm_ioctl_modem_flag_str
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:749,4'
          Dst:             winpr_str_append
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:755,8'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:756,2'
          Dst:             winpr_str_append
    - functionName:    comm_ioctl_tcsetattr
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_ioctl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 681
      functionLinenumberEnd: 708
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - fd
        - optional_actions
        - termios_p
      BBCount:         15
      ICount:          113
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - CommLog_PrintEx
        - __errno_location
        - memcmp
        - tcgetattr
        - tcsetattr
        - winpr_strerror
      functionUses:    6
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:687,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:689,9'
              BranchSideFuncs:
                - __errno_location
                - winpr_strerror
                - __errno_location
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:696,29'
              BranchSideFuncs:
                - tcgetattr
                - memcmp
                - tcsetattr
                - __errno_location
                - winpr_strerror
                - __errno_location
                - CommLog_PrintEx
                - __errno_location
                - winpr_strerror
                - __errno_location
                - CommLog_PrintEx
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:697,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:699,9'
              BranchSideFuncs:
                - __errno_location
                - winpr_strerror
                - __errno_location
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:705,2'
              BranchSideFuncs:
                - memcmp
                - tcsetattr
                - tcgetattr
                - __errno_location
                - winpr_strerror
                - __errno_location
                - CommLog_PrintEx
                - __errno_location
                - winpr_strerror
                - __errno_location
                - CommLog_PrintEx
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:705,75'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:705,84'
              BranchSideFuncs:
                - tcsetattr
                - tcgetattr
                - memcmp
                - __errno_location
                - winpr_strerror
                - __errno_location
                - CommLog_PrintEx
                - __errno_location
                - winpr_strerror
                - __errno_location
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:705,2'
              BranchSideFuncs:
                - tcsetattr
                - tcgetattr
                - memcmp
                - __errno_location
                - winpr_strerror
                - __errno_location
                - CommLog_PrintEx
                - __errno_location
                - winpr_strerror
                - __errno_location
                - CommLog_PrintEx
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:705,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:686,29'
              BranchSideFuncs:
                - tcsetattr
                - tcgetattr
                - memcmp
                - __errno_location
                - winpr_strerror
                - __errno_location
                - CommLog_PrintEx
                - __errno_location
                - winpr_strerror
                - __errno_location
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:707,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:686,19'
          Dst:             tcsetattr
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:690,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:690,4'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:690,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:690,4'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:696,19'
          Dst:             tcgetattr
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:700,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:700,4'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:700,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:700,4'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:705,12'
          Dst:             memcmp
    - 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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    s_CommDeviceIoControl
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_ioctl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 56
      functionLinenumberEnd: 616
      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:         306
      ICount:          1562
      EdgeCount:       369
      CyclomaticComplexity: 65
      functionsReached:
        - CommIsHandleValid
        - CommLog_PrintEx
        - CommSerialEvString
        - SerCx2Sys_s
        - SerCxSys_s
        - SerialSys_s
        - SetLastError
        - _comm_serial_ioctl_name
        - comm_ioctl_modem_status_string
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:61,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:62,3'
              BranchSideFuncs:
                - SetLastError
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - CommLog_PrintEx
                - SerCx2Sys_s
                - winpr_int_assert
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - CommSerialEvString
                - CommLog_PrintEx
                - SetLastError
                - winpr_int_assert
                - CommSerialEvString
                - CommLog_PrintEx
                - SetLastError
                - winpr_int_assert
                - CommSerialEvString
                - CommLog_PrintEx
                - SetLastError
                - winpr_int_assert
                - comm_ioctl_modem_status_string
                - CommLog_PrintEx
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - SetLastError
                - SerCx2Sys_s
                - SerCxSys_s
                - SerialSys_s
                - SetLastError
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:64,6'
              BranchSideFuncs:
                - SetLastError
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - CommLog_PrintEx
                - SerCx2Sys_s
                - winpr_int_assert
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - CommSerialEvString
                - CommLog_PrintEx
                - SetLastError
                - winpr_int_assert
                - CommSerialEvString
                - CommLog_PrintEx
                - SetLastError
                - winpr_int_assert
                - CommSerialEvString
                - CommLog_PrintEx
                - SetLastError
                - winpr_int_assert
                - comm_ioctl_modem_status_string
                - CommLog_PrintEx
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - SetLastError
                - SerCx2Sys_s
                - SerCxSys_s
                - SerialSys_s
                - SetLastError
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:64,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:66,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:70,6'
              BranchSideFuncs:
                - SetLastError
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - CommLog_PrintEx
                - SerCx2Sys_s
                - winpr_int_assert
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - CommSerialEvString
                - CommLog_PrintEx
                - SetLastError
                - winpr_int_assert
                - CommSerialEvString
                - CommLog_PrintEx
                - SetLastError
                - winpr_int_assert
                - CommSerialEvString
                - CommLog_PrintEx
                - SetLastError
                - winpr_int_assert
                - comm_ioctl_modem_status_string
                - CommLog_PrintEx
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - SetLastError
                - SerCx2Sys_s
                - SerCxSys_s
                - SerialSys_s
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:70,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:72,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:77,2'
              BranchSideFuncs:
                - SetLastError
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - CommLog_PrintEx
                - SerCx2Sys_s
                - winpr_int_assert
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - CommSerialEvString
                - CommLog_PrintEx
                - SetLastError
                - winpr_int_assert
                - CommSerialEvString
                - CommLog_PrintEx
                - SetLastError
                - winpr_int_assert
                - CommSerialEvString
                - CommLog_PrintEx
                - SetLastError
                - winpr_int_assert
                - comm_ioctl_modem_status_string
                - CommLog_PrintEx
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - SetLastError
                - SerCx2Sys_s
                - SerCxSys_s
                - SerialSys_s
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:88,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:91,26'
              BranchSideFuncs:
                - SerialSys_s
                - winpr_int_assert
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - CommSerialEvString
                - CommLog_PrintEx
                - SetLastError
                - winpr_int_assert
                - CommSerialEvString
                - CommLog_PrintEx
                - SetLastError
                - winpr_int_assert
                - CommSerialEvString
                - CommLog_PrintEx
                - SetLastError
                - winpr_int_assert
                - comm_ioctl_modem_status_string
                - CommLog_PrintEx
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:95,26'
              BranchSideFuncs:
                - SerCxSys_s
                - winpr_int_assert
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - CommSerialEvString
                - CommLog_PrintEx
                - SetLastError
                - winpr_int_assert
                - CommSerialEvString
                - CommLog_PrintEx
                - SetLastError
                - winpr_int_assert
                - CommSerialEvString
                - CommLog_PrintEx
                - SetLastError
                - winpr_int_assert
                - comm_ioctl_modem_status_string
                - CommLog_PrintEx
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:99,26'
              BranchSideFuncs:
                - SerCx2Sys_s
                - winpr_int_assert
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - CommSerialEvString
                - CommLog_PrintEx
                - SetLastError
                - winpr_int_assert
                - CommSerialEvString
                - CommLog_PrintEx
                - SetLastError
                - winpr_int_assert
                - CommSerialEvString
                - CommLog_PrintEx
                - SetLastError
                - winpr_int_assert
                - comm_ioctl_modem_status_string
                - CommLog_PrintEx
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:102,3'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SerCx2Sys_s
                - winpr_int_assert
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - CommSerialEvString
                - CommLog_PrintEx
                - SetLastError
                - winpr_int_assert
                - CommSerialEvString
                - CommLog_PrintEx
                - SetLastError
                - winpr_int_assert
                - CommSerialEvString
                - CommLog_PrintEx
                - SetLastError
                - winpr_int_assert
                - comm_ioctl_modem_status_string
                - CommLog_PrintEx
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:104,4'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SerCx2Sys_s
                - winpr_int_assert
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - CommSerialEvString
                - CommLog_PrintEx
                - SetLastError
                - winpr_int_assert
                - CommSerialEvString
                - CommLog_PrintEx
                - SetLastError
                - winpr_int_assert
                - CommSerialEvString
                - CommLog_PrintEx
                - SetLastError
                - winpr_int_assert
                - comm_ioctl_modem_status_string
                - CommLog_PrintEx
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:110,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:110,2'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - CommSerialEvString
                - CommLog_PrintEx
                - SetLastError
                - winpr_int_assert
                - CommSerialEvString
                - CommLog_PrintEx
                - SetLastError
                - winpr_int_assert
                - CommSerialEvString
                - CommLog_PrintEx
                - SetLastError
                - winpr_int_assert
                - comm_ioctl_modem_status_string
                - CommLog_PrintEx
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - winpr_int_assert
                - SetLastError
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:110,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:112,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:118,23'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:124,8'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - SetLastError
                - winpr_int_assert
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:141,8'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - SetLastError
                - winpr_int_assert
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:162,8'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - SetLastError
                - winpr_int_assert
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:183,8'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - SetLastError
                - winpr_int_assert
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:200,8'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - SetLastError
                - winpr_int_assert
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:221,8'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - SetLastError
                - winpr_int_assert
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:238,8'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - SetLastError
                - winpr_int_assert
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:259,8'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - SetLastError
                - winpr_int_assert
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:276,8'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - SetLastError
                - winpr_int_assert
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:297,8'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - SetLastError
                - winpr_int_assert
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:314,8'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - SetLastError
                - winpr_int_assert
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:335,8'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:343,8'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:351,8'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:359,8'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:367,8'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - SetLastError
                - winpr_int_assert
                - comm_ioctl_modem_status_string
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:390,8'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - SetLastError
                - winpr_int_assert
                - CommSerialEvString
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:410,8'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - SetLastError
                - winpr_int_assert
                - CommSerialEvString
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:433,8'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - SetLastError
                - winpr_int_assert
                - CommSerialEvString
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:455,8'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - SetLastError
                - winpr_int_assert
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:472,8'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - SetLastError
                - winpr_int_assert
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:489,8'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - SetLastError
                - winpr_int_assert
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:510,8'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:518,8'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:526,8'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:534,8'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:542,8'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - SetLastError
                - winpr_int_assert
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:563,8'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - SetLastError
                - winpr_int_assert
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:584,8'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - SetLastError
                - winpr_int_assert
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:601,8'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:608,4'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:124,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:126,54'
              BranchSideFuncs:
                - winpr_int_assert
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:137,4'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:128,5'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:128,5'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:128,5'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:129,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:131,6'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:135,12'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:141,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:143,54'
              BranchSideFuncs:
                - winpr_int_assert
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:158,4'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:145,5'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:145,5'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:145,5'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:146,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:148,6'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:152,10'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:152,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:153,6'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:155,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:162,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:164,40'
              BranchSideFuncs:
                - winpr_int_assert
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:179,4'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:166,5'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:166,5'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:166,5'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:167,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:169,6'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:173,10'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:173,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:174,6'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:176,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:183,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:185,49'
              BranchSideFuncs:
                - winpr_int_assert
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:196,4'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:187,5'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:187,5'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:187,5'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:188,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:190,6'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:194,12'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:200,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:202,49'
              BranchSideFuncs:
                - winpr_int_assert
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:217,4'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:204,5'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:204,5'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:204,5'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:205,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:207,6'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:211,10'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:211,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:212,6'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:214,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:221,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:223,63'
              BranchSideFuncs:
                - winpr_int_assert
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:234,4'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:225,5'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:225,5'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:225,5'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:226,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:228,6'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:232,12'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:238,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:240,63'
              BranchSideFuncs:
                - winpr_int_assert
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:255,4'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:242,5'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:242,5'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:242,5'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:243,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:245,6'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:249,10'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:249,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:250,6'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:252,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:259,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:261,52'
              BranchSideFuncs:
                - winpr_int_assert
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:272,4'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:263,5'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:263,5'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:263,5'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:264,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:266,6'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:270,12'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:276,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:278,52'
              BranchSideFuncs:
                - winpr_int_assert
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:293,4'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:280,5'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:280,5'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:280,5'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:281,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:283,6'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:287,10'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:287,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:288,6'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:290,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:297,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:299,52'
              BranchSideFuncs:
                - winpr_int_assert
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:310,4'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:301,5'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:301,5'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:301,5'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:302,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:304,6'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:308,12'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:314,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:316,52'
              BranchSideFuncs:
                - winpr_int_assert
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:331,4'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:318,5'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:318,5'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:318,5'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:319,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:321,6'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:325,10'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:325,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:326,6'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:328,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:335,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:337,12'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:339,4'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:343,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:345,12'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:347,4'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:351,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:353,12'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:355,4'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:359,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:361,12'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:363,4'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:367,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:369,32'
              BranchSideFuncs:
                - winpr_int_assert
                - comm_ioctl_modem_status_string
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:386,4'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:371,5'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:371,5'
              BranchSideFuncs:
                - comm_ioctl_modem_status_string
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:371,5'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:372,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:374,6'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:378,10'
              BranchSideFuncs:
                - comm_ioctl_modem_status_string
                - CommLog_PrintEx
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:378,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:379,6'
              BranchSideFuncs:
                - comm_ioctl_modem_status_string
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:381,5'
              BranchSideFuncs:
                - comm_ioctl_modem_status_string
                - CommLog_PrintEx
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:390,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:392,32'
              BranchSideFuncs:
                - winpr_int_assert
                - CommSerialEvString
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:406,4'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:394,5'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:394,5'
              BranchSideFuncs:
                - CommSerialEvString
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:394,5'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:395,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:397,6'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:401,21'
              BranchSideFuncs:
                - CommSerialEvString
                - CommLog_PrintEx
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:410,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:412,32'
              BranchSideFuncs:
                - winpr_int_assert
                - CommSerialEvString
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:429,4'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:414,5'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:414,5'
              BranchSideFuncs:
                - CommSerialEvString
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:414,5'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:415,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:417,6'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:421,10'
              BranchSideFuncs:
                - CommSerialEvString
                - CommLog_PrintEx
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:421,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:422,6'
              BranchSideFuncs:
                - CommSerialEvString
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:424,5'
              BranchSideFuncs:
                - CommSerialEvString
                - CommLog_PrintEx
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:433,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:435,34'
              BranchSideFuncs:
                - winpr_int_assert
                - CommSerialEvString
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:451,4'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:437,5'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:437,5'
              BranchSideFuncs:
                - CommSerialEvString
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:437,5'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:438,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:440,6'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:444,21'
              BranchSideFuncs:
                - CommSerialEvString
                - CommLog_PrintEx
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:455,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:457,57'
              BranchSideFuncs:
                - winpr_int_assert
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:468,4'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:459,5'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:459,5'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:459,5'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:460,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:462,6'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:466,12'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:472,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:474,33'
              BranchSideFuncs:
                - winpr_int_assert
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:485,4'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:476,5'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:476,5'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:476,5'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:477,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:479,6'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:483,12'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:489,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:491,50'
              BranchSideFuncs:
                - winpr_int_assert
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:506,4'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:493,5'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:493,5'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:493,5'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:494,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:496,6'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:500,10'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:500,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:501,6'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:503,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:510,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:512,12'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:514,4'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:518,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:520,12'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:522,4'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:526,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:528,12'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:530,4'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:534,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:536,12'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:538,4'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:542,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:544,28'
              BranchSideFuncs:
                - winpr_int_assert
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:559,4'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:546,5'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:546,5'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:546,5'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:547,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:549,6'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:553,10'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:553,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:554,6'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:556,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:563,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:565,28'
              BranchSideFuncs:
                - winpr_int_assert
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:580,4'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:567,5'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:567,5'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:567,5'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:568,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:570,6'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:574,10'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:574,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:575,6'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:577,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:584,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:586,28'
              BranchSideFuncs:
                - winpr_int_assert
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:597,4'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:588,5'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:588,5'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:588,5'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:589,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:591,6'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:595,12'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:601,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:603,12'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:605,4'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - SetLastError
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:61,7'
          Dst:             CommIsHandleValid
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:66,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:72,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:77,2'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:81,2'
          Dst:             _comm_serial_ioctl_name
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:81,2'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:91,26'
          Dst:             SerialSys_s
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:95,26'
          Dst:             SerCxSys_s
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:99,26'
          Dst:             SerCx2Sys_s
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:104,4'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:106,26'
          Dst:             SerCx2Sys_s
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:110,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:119,4'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:128,5'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:131,6'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:145,5'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:148,6'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:166,5'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:169,6'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:187,5'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:190,6'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:204,5'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:207,6'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:225,5'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:228,6'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:242,5'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:245,6'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:263,5'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:266,6'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:280,5'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:283,6'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:301,5'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:304,6'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:318,5'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:321,6'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:371,5'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:374,6'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:381,5'
          Dst:             comm_ioctl_modem_status_string
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:381,5'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:394,5'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:397,6'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:402,5'
          Dst:             CommSerialEvString
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:402,5'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:414,5'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:417,6'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:424,5'
          Dst:             CommSerialEvString
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:424,5'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:437,5'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:440,6'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:447,5'
          Dst:             CommSerialEvString
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:447,5'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:459,5'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:462,6'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:476,5'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:479,6'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:493,5'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:496,6'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:546,5'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:549,6'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:567,5'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:570,6'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:588,5'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:591,6'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:611,2'
          Dst:             _comm_serial_ioctl_name
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:611,2'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:614,2'
          Dst:             SetLastError
    - functionName:    CommDeviceIoControl
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_ioctl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 633
      functionLinenumberEnd: 678
      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:          143
      EdgeCount:       27
      CyclomaticComplexity: 9
      functionsReached:
        - CommIsHandled
        - CommLog_PrintEx
        - SetLastError
        - _comm_serial_ioctl_name
        - s_CommDeviceIoControl
      functionUses:    14
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:637,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:639,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:643,21'
              BranchSideFuncs:
                - CommIsHandled
                - SetLastError
                - s_CommDeviceIoControl
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:643,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:644,3'
              BranchSideFuncs:
                - SetLastError
                - s_CommDeviceIoControl
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:646,7'
              BranchSideFuncs:
                - SetLastError
                - s_CommDeviceIoControl
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:646,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:648,3'
              BranchSideFuncs:
                - s_CommDeviceIoControl
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:652,33'
              BranchSideFuncs:
                - s_CommDeviceIoControl
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:655,22'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:655,26'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:665,6'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:655,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:658,3'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:665,6'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:665,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:667,8'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:677,9'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:667,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:669,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:674,3'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:639,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:643,7'
          Dst:             CommIsHandled
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:648,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:652,11'
          Dst:             s_CommDeviceIoControl
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:658,3'
          Dst:             _comm_serial_ioctl_name
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:658,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:669,4'
          Dst:             _comm_serial_ioctl_name
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:669,4'
          Dst:             CommLog_PrintEx
    - functionName:    consume_event
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1434
      functionLinenumberEnd: 1443
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - pComm
        - pOutputMask
        - event
      BBCount:         20
      ICount:          84
      EdgeCount:       22
      CyclomaticComplexity: 4
      functionsReached:
        - winpr_int_assert
      functionUses:    9
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1435,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1435,2'
              BranchSideFuncs:
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1435,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1436,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1436,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1436,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1438,37'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1438,41'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1438,37'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1438,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1438,6'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1440,28'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1435,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1436,2'
          Dst:             winpr_int_assert
    - functionName:    unlock_return
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1446
      functionLinenumberEnd: 1450
      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:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1447,2'
          Dst:             EnterCriticalSection
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1449,2'
          Dst:             LeaveCriticalSection
    - functionName:    refresh_PendingEvents
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1419
      functionLinenumberEnd: 1431
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - pComm
      BBCount:         12
      ICount:          46
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - get_commstatus
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1422,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1422,2'
              BranchSideFuncs:
                - get_commstatus
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1422,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1425,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1427,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1430,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1422,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1425,7'
          Dst:             get_commstatus
    - functionName:    get_commstatus
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1257
      functionLinenumberEnd: 1415
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pComm
        - pCommstatus
      BBCount:         74
      ICount:          488
      EdgeCount:       95
      CyclomaticComplexity: 23
      functionsReached:
        - CommIoCtl_int
        - CommUpdateIOCount
        - EnterCriticalSection
        - LeaveCriticalSection
        - get_raw_modemstatus
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1263,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1263,2'
              BranchSideFuncs:
                - winpr_int_assert
                - EnterCriticalSection
                - get_raw_modemstatus
                - LeaveCriticalSection
                - CommUpdateIOCount
                - CommIoCtl_int
                - CommIoCtl_int
                - CommIoCtl_int
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1263,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1264,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1264,2'
              BranchSideFuncs:
                - EnterCriticalSection
                - get_raw_modemstatus
                - LeaveCriticalSection
                - CommUpdateIOCount
                - CommIoCtl_int
                - CommIoCtl_int
                - CommIoCtl_int
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1264,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1272,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1273,3'
              BranchSideFuncs:
                - CommUpdateIOCount
                - LeaveCriticalSection
                - CommIoCtl_int
                - CommIoCtl_int
                - CommIoCtl_int
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1276,25'
              BranchSideFuncs:
                - CommUpdateIOCount
                - LeaveCriticalSection
                - CommIoCtl_int
                - CommIoCtl_int
                - CommIoCtl_int
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1276,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1277,3'
              BranchSideFuncs:
                - CommIoCtl_int
                - LeaveCriticalSection
                - CommIoCtl_int
                - CommIoCtl_int
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1278,20'
              BranchSideFuncs:
                - CommIoCtl_int
                - LeaveCriticalSection
                - CommIoCtl_int
                - CommIoCtl_int
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1285,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1287,3'
              BranchSideFuncs:
                - CommIoCtl_int
                - LeaveCriticalSection
                - CommIoCtl_int
                - CommIoCtl_int
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1290,22'
              BranchSideFuncs:
                - CommIoCtl_int
                - LeaveCriticalSection
                - CommIoCtl_int
                - CommIoCtl_int
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1290,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1292,3'
              BranchSideFuncs:
                - CommIoCtl_int
                - LeaveCriticalSection
                - CommIoCtl_int
                - CommIoCtl_int
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1296,22'
              BranchSideFuncs:
                - CommIoCtl_int
                - LeaveCriticalSection
                - CommIoCtl_int
                - CommIoCtl_int
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1296,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1298,3'
              BranchSideFuncs:
                - CommIoCtl_int
                - LeaveCriticalSection
                - CommIoCtl_int
                - CommIoCtl_int
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1302,22'
              BranchSideFuncs:
                - CommIoCtl_int
                - LeaveCriticalSection
                - CommIoCtl_int
                - CommIoCtl_int
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1302,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1304,3'
              BranchSideFuncs:
                - CommIoCtl_int
                - LeaveCriticalSection
                - CommIoCtl_int
                - CommIoCtl_int
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1308,22'
              BranchSideFuncs:
                - CommIoCtl_int
                - LeaveCriticalSection
                - CommIoCtl_int
                - CommIoCtl_int
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1308,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1310,3'
              BranchSideFuncs:
                - CommIoCtl_int
                - LeaveCriticalSection
                - CommIoCtl_int
                - CommIoCtl_int
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1317,6'
              BranchSideFuncs:
                - CommIoCtl_int
                - LeaveCriticalSection
                - CommIoCtl_int
                - CommIoCtl_int
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1317,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1318,3'
              BranchSideFuncs:
                - CommIoCtl_int
                - LeaveCriticalSection
                - CommIoCtl_int
                - CommIoCtl_int
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1326,6'
              BranchSideFuncs:
                - CommIoCtl_int
                - LeaveCriticalSection
                - CommIoCtl_int
                - CommIoCtl_int
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1326,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1327,3'
              BranchSideFuncs:
                - CommIoCtl_int
                - LeaveCriticalSection
                - CommIoCtl_int
                - CommIoCtl_int
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1330,6'
              BranchSideFuncs:
                - CommIoCtl_int
                - LeaveCriticalSection
                - CommIoCtl_int
                - CommIoCtl_int
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1331,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1332,3'
              BranchSideFuncs:
                - CommIoCtl_int
                - LeaveCriticalSection
                - CommIoCtl_int
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1335,7'
              BranchSideFuncs:
                - CommIoCtl_int
                - LeaveCriticalSection
                - CommIoCtl_int
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1335,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1336,3'
              BranchSideFuncs:
                - CommIoCtl_int
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1341,7'
              BranchSideFuncs:
                - CommIoCtl_int
                - LeaveCriticalSection
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1341,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1342,3'
              BranchSideFuncs:
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1350,6'
              BranchSideFuncs:
                - LeaveCriticalSection
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1350,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1351,3'
              BranchSideFuncs:
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1353,6'
              BranchSideFuncs:
                - LeaveCriticalSection
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1353,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1355,3'
              BranchSideFuncs:
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1361,3'
              BranchSideFuncs:
                - LeaveCriticalSection
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1365,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1367,3'
              BranchSideFuncs:
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1371,3'
              BranchSideFuncs:
                - LeaveCriticalSection
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1374,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1376,3'
              BranchSideFuncs:
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1379,22'
              BranchSideFuncs:
                - LeaveCriticalSection
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1379,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1381,3'
              BranchSideFuncs:
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1384,22'
              BranchSideFuncs:
                - LeaveCriticalSection
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1384,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1386,3'
              BranchSideFuncs:
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1389,22'
              BranchSideFuncs:
                - LeaveCriticalSection
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1389,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1391,3'
              BranchSideFuncs:
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1394,22'
              BranchSideFuncs:
                - LeaveCriticalSection
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1394,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1396,3'
              BranchSideFuncs:
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1398,2'
              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:1263,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1264,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1267,2'
          Dst:             EnterCriticalSection
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1272,7'
          Dst:             get_raw_modemstatus
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1276,7'
          Dst:             CommUpdateIOCount
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1331,7'
          Dst:             CommIoCtl_int
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1335,7'
          Dst:             CommIoCtl_int
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1341,7'
          Dst:             CommIoCtl_int
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1414,2'
          Dst:             LeaveCriticalSection
    - functionName:    get_raw_modemstatus
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1016
      functionLinenumberEnd: 1025
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pComm
        - pRegister
      BBCount:         15
      ICount:          59
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - CommIoCtl_int
        - CommLog_PrintEx
        - get_modem_status_str
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1017,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1017,2'
              BranchSideFuncs:
                - winpr_int_assert
                - CommIoCtl_int
                - get_modem_status_str
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1017,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1018,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1018,2'
              BranchSideFuncs:
                - CommIoCtl_int
                - get_modem_status_str
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1018,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1017,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1018,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1020,18'
          Dst:             CommIoCtl_int
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1023,2'
          Dst:             get_modem_status_str
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1023,2'
          Dst:             CommLog_PrintEx
    - functionName:    get_modem_status_str
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 183
      functionLinenumberEnd: 202
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - status
        - buffer
        - size
      BBCount:         10
      ICount:          86
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - get_modem_flag_str
        - snprintf
        - winpr_str_append
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:189,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:191,26'
              BranchSideFuncs:
                - snprintf
                - winpr_str_append
                - get_modem_flag_str
                - winpr_str_append
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:199,7'
              BranchSideFuncs:
                - snprintf
                - winpr_str_append
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:192,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:194,40'
              BranchSideFuncs:
                - get_modem_flag_str
                - winpr_str_append
                - snprintf
                - winpr_str_append
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:197,2'
              BranchSideFuncs:
                - snprintf
                - winpr_str_append
                - get_modem_flag_str
                - winpr_str_append
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:186,2'
          Dst:             winpr_str_append
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:194,21'
          Dst:             get_modem_flag_str
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:194,4'
          Dst:             winpr_str_append
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:200,8'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:201,2'
          Dst:             winpr_str_append
    - functionName:    get_modem_flag_str
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 180
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - flag
      BBCount:         24
      ICount:          124
      EdgeCount:       34
      CyclomaticComplexity: 12
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:157,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:158,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:159,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:159,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:160,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:161,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:161,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:162,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:163,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:163,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:164,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:165,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:165,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:166,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:167,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:167,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:168,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:169,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:169,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:170,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:171,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:171,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:172,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:173,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:173,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:174,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:175,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:175,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:176,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:177,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:177,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:178,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:179,2'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    is_wait_set
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1059
      functionLinenumberEnd: 1065
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - pComm
      BBCount:         9
      ICount:          46
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - EnterCriticalSection
        - LeaveCriticalSection
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1060,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1060,2'
              BranchSideFuncs:
                - EnterCriticalSection
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1060,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1060,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1062,2'
          Dst:             EnterCriticalSection
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1064,2'
          Dst:             LeaveCriticalSection
    - functionName:    clear_lines
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 936
      functionLinenumberEnd: 939
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - pComm
        - lines
      BBCount:         9
      ICount:          34
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - CommIoCtl_int
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:937,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:937,2'
              BranchSideFuncs:
                - CommIoCtl_int
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:937,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:937,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:939,9'
          Dst:             CommIoCtl_int
    - functionName:    set_lines
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 929
      functionLinenumberEnd: 932
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - pComm
        - lines
      BBCount:         9
      ICount:          34
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - CommIoCtl_int
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:930,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:930,2'
              BranchSideFuncs:
                - CommIoCtl_int
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:930,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:930,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:932,9'
          Dst:             CommIoCtl_int
    - functionName:    reset_device
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1619
      functionLinenumberEnd: 1628
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - pComm
      BBCount:         9
      ICount:          39
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - CommIoCtl_int
        - CommUpdateIOCount
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1621,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1621,2'
              BranchSideFuncs:
                - CommUpdateIOCount
                - CommIoCtl_int
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1621,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1621,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1626,8'
          Dst:             CommUpdateIOCount
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1628,9'
          Dst:             CommIoCtl_int
    - functionName:    immediate_char
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1598
      functionLinenumberEnd: 1615
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pComm
        - pChar
      BBCount:         21
      ICount:          68
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - CommWriteFile
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1602,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1602,2'
              BranchSideFuncs:
                - winpr_int_assert
                - CommWriteFile
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1602,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1603,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1603,2'
              BranchSideFuncs:
                - CommWriteFile
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1603,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1613,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1613,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1613,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1602,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1603,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1611,11'
          Dst:             CommWriteFile
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1613,2'
          Dst:             winpr_int_assert
    - functionName:    config_size
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1585
      functionLinenumberEnd: 1595
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pComm
        - pSize
      BBCount:         18
      ICount:          58
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_int_assert
      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:
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1586,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1587,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1587,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1587,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1590,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1591,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1593,3'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1586,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1587,2'
          Dst:             winpr_int_assert
    - functionName:    get_dtrrts
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1565
      functionLinenumberEnd: 1582
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pComm
        - pMask
      BBCount:         24
      ICount:          94
      EdgeCount:       27
      CyclomaticComplexity: 5
      functionsReached:
        - get_raw_modemstatus
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1568,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1568,2'
              BranchSideFuncs:
                - winpr_int_assert
                - get_raw_modemstatus
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1568,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1569,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1569,2'
              BranchSideFuncs:
                - get_raw_modemstatus
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1569,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1571,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1572,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1574,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1576,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1577,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1578,8'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1578,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1579,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1581,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1568,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1569,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1571,7'
          Dst:             get_raw_modemstatus
    - functionName:    set_xon
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1549
      functionLinenumberEnd: 1562
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - pComm
      BBCount:         12
      ICount:          56
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - CommLog_PrintEx
        - SetLastError
        - __errno_location
        - tcflow
        - winpr_int_assert
        - winpr_strerror
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1550,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1550,2'
              BranchSideFuncs:
                - tcflow
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1550,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1552,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1554,8'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1561,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1550,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1552,6'
          Dst:             tcflow
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1555,3'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1555,3'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1555,3'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1555,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1557,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: 1533
      functionLinenumberEnd: 1546
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - pComm
      BBCount:         12
      ICount:          56
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - CommLog_PrintEx
        - SetLastError
        - __errno_location
        - tcflow
        - winpr_int_assert
        - winpr_strerror
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1534,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1534,2'
              BranchSideFuncs:
                - tcflow
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1534,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1536,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1538,8'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1545,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1534,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1536,6'
          Dst:             tcflow
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1539,3'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1539,3'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1539,3'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1539,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1541,3'
          Dst:             SetLastError
    - functionName:    set_break_off
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1526
      functionLinenumberEnd: 1529
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - pComm
      BBCount:         9
      ICount:          31
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - CommIoCtl_int
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1527,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1527,2'
              BranchSideFuncs:
                - CommIoCtl_int
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1527,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1527,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1529,9'
          Dst:             CommIoCtl_int
    - functionName:    set_break_on
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1520
      functionLinenumberEnd: 1522
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - pComm
      BBCount:         9
      ICount:          31
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - CommIoCtl_int
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1521,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1521,2'
              BranchSideFuncs:
                - CommIoCtl_int
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1521,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1521,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1522,9'
          Dst:             CommIoCtl_int
    - functionName:    purge
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1168
      functionLinenumberEnd: 1250
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pComm
        - pPurgeMask
      BBCount:         58
      ICount:          260
      EdgeCount:       69
      CyclomaticComplexity: 13
      functionsReached:
        - CommLog_PrintEx
        - SetLastError
        - __errno_location
        - eventfd_write
        - tcflush
        - winpr_int_assert
        - winpr_strerror
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1169,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1169,2'
              BranchSideFuncs:
                - winpr_int_assert
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
                - eventfd_write
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - eventfd_write
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1169,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1170,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1170,2'
              BranchSideFuncs:
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
                - eventfd_write
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - eventfd_write
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1170,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1172,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1175,3'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1185,7'
              BranchSideFuncs:
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
                - eventfd_write
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - eventfd_write
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1185,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1189,21'
              BranchSideFuncs:
                - eventfd_write
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
                - eventfd_write
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1203,7'
              BranchSideFuncs:
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
                - eventfd_write
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1189,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1191,8'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
                - eventfd_write
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1201,2'
              BranchSideFuncs:
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
                - eventfd_write
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1191,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1193,10'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - winpr_int_assert
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
                - eventfd_write
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1198,4'
              BranchSideFuncs:
                - __errno_location
                - winpr_int_assert
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
                - eventfd_write
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1198,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1198,4'
              BranchSideFuncs:
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
                - eventfd_write
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1198,4'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1203,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1207,21'
              BranchSideFuncs:
                - eventfd_write
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1221,7'
              BranchSideFuncs:
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1207,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1209,8'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1219,2'
              BranchSideFuncs:
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1209,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1211,10'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - winpr_int_assert
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1216,4'
              BranchSideFuncs:
                - __errno_location
                - winpr_int_assert
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1216,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1216,4'
              BranchSideFuncs:
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1216,4'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1221,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1225,15'
              BranchSideFuncs:
                - tcflush
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1235,7'
              BranchSideFuncs:
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1225,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1227,9'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1233,2'
              BranchSideFuncs:
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1235,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1239,15'
              BranchSideFuncs:
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1249,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1239,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1241,9'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1247,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1169,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1170,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1175,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1176,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1189,7'
          Dst:             eventfd_write
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1191,8'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1194,5'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1194,5'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1194,5'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1194,5'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1198,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1198,4'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1207,7'
          Dst:             eventfd_write
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1209,8'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1212,5'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1212,5'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1212,5'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1212,5'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1216,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1216,4'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1225,7'
          Dst:             tcflush
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1228,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1228,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1228,4'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1228,4'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1230,4'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1239,7'
          Dst:             tcflush
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1242,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1242,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1242,4'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1242,4'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1244,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: 1142
      functionLinenumberEnd: 1165
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pComm
        - pQueueSize
      BBCount:         27
      ICount:          107
      EdgeCount:       31
      CyclomaticComplexity: 6
      functionsReached:
        - CommLog_PrintEx
        - SetLastError
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1143,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1143,2'
              BranchSideFuncs:
                - winpr_int_assert
                - SetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1143,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1144,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1144,2'
              BranchSideFuncs:
                - SetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1144,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1146,45'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1146,49'
              BranchSideFuncs:
                - SetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1151,6'
              BranchSideFuncs:
                - SetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1146,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1147,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1151,6'
              BranchSideFuncs:
                - SetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1151,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1152,3'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1157,6'
              BranchSideFuncs:
                - SetLastError
                - CommLog_PrintEx
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1157,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1158,3'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1163,2'
              BranchSideFuncs:
                - SetLastError
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1143,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1144,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1152,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1158,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1163,2'
          Dst:             SetLastError
    - functionName:    wait_on_mask
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1457
      functionLinenumberEnd: 1517
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pComm
        - pOutputMask
      BBCount:         30
      ICount:          147
      EdgeCount:       33
      CyclomaticComplexity: 5
      functionsReached:
        - EnterCriticalSection
        - LeaveCriticalSection
        - Sleep
        - consume_event
        - refresh_PendingEvents
        - unlock_return
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1458,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1458,2'
              BranchSideFuncs:
                - winpr_int_assert
                - 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
                - LeaveCriticalSection
                - Sleep
                - unlock_return
                - winpr_int_assert
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1458,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1459,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1459,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
                - LeaveCriticalSection
                - Sleep
                - unlock_return
                - winpr_int_assert
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1459,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1468,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1469,25'
              BranchSideFuncs:
                - EnterCriticalSection
                - 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
                - winpr_int_assert
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1472,25'
              BranchSideFuncs:
                - EnterCriticalSection
                - 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
                - winpr_int_assert
                - LeaveCriticalSection
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1474,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1481,4'
              BranchSideFuncs:
                - winpr_int_assert
                - LeaveCriticalSection
                - unlock_return
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1487,17'
              BranchSideFuncs:
                - 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
                - winpr_int_assert
                - LeaveCriticalSection
                - unlock_return
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1481,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1481,4'
              BranchSideFuncs:
                - LeaveCriticalSection
                - unlock_return
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1481,4'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1502,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1503,4'
              BranchSideFuncs:
                - unlock_return
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1513,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
                - LeaveCriticalSection
                - unlock_return
                - winpr_int_assert
                - LeaveCriticalSection
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1458,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1459,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1461,2'
          Dst:             EnterCriticalSection
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1463,2'
          Dst:             LeaveCriticalSection
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1468,8'
          Dst:             refresh_PendingEvents
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1469,11'
          Dst:             unlock_return
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1472,3'
          Dst:             EnterCriticalSection
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1481,4'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1483,4'
          Dst:             LeaveCriticalSection
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1487,3'
          Dst:             consume_event
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1488,3'
          Dst:             consume_event
        - 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:1497,3'
          Dst:             LeaveCriticalSection
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1513,3'
          Dst:             Sleep
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1516,9'
          Dst:             unlock_return
    - functionName:    get_wait_mask
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1133
      functionLinenumberEnd: 1138
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pComm
        - pWaitMask
      BBCount:         15
      ICount:          49
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1134,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1134,2'
              BranchSideFuncs:
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1134,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1135,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1135,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1135,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1134,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1135,2'
          Dst:             winpr_int_assert
    - functionName:    set_wait_mask
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1069
      functionLinenumberEnd: 1130
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pComm
        - pWaitMask
      BBCount:         29
      ICount:          161
      EdgeCount:       34
      CyclomaticComplexity: 7
      functionsReached:
        - CommLog_PrintEx
        - CommUpdateIOCount
        - EnterCriticalSection
        - LeaveCriticalSection
        - Sleep
        - is_wait_set
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1072,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1072,2'
              BranchSideFuncs:
                - winpr_int_assert
                - is_wait_set
                - EnterCriticalSection
                - LeaveCriticalSection
                - CommLog_PrintEx
                - LeaveCriticalSection
                - CommUpdateIOCount
                - LeaveCriticalSection
                - EnterCriticalSection
                - LeaveCriticalSection
                - is_wait_set
                - EnterCriticalSection
                - LeaveCriticalSection
                - Sleep
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1072,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1073,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1073,2'
              BranchSideFuncs:
                - is_wait_set
                - EnterCriticalSection
                - LeaveCriticalSection
                - CommLog_PrintEx
                - LeaveCriticalSection
                - CommUpdateIOCount
                - LeaveCriticalSection
                - EnterCriticalSection
                - LeaveCriticalSection
                - is_wait_set
                - EnterCriticalSection
                - LeaveCriticalSection
                - Sleep
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1073,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1078,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1082,25'
              BranchSideFuncs:
                - EnterCriticalSection
                - LeaveCriticalSection
                - is_wait_set
                - EnterCriticalSection
                - LeaveCriticalSection
                - EnterCriticalSection
                - LeaveCriticalSection
                - CommLog_PrintEx
                - LeaveCriticalSection
                - CommUpdateIOCount
                - LeaveCriticalSection
                - Sleep
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1096,24'
              BranchSideFuncs:
                - EnterCriticalSection
                - LeaveCriticalSection
                - CommLog_PrintEx
                - LeaveCriticalSection
                - CommUpdateIOCount
                - LeaveCriticalSection
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1087,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1088,4'
              BranchSideFuncs:
                - Sleep
                - is_wait_set
                - EnterCriticalSection
                - LeaveCriticalSection
                - EnterCriticalSection
                - LeaveCriticalSection
                - CommLog_PrintEx
                - LeaveCriticalSection
                - CommUpdateIOCount
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1090,25'
              BranchSideFuncs:
                - EnterCriticalSection
                - LeaveCriticalSection
                - EnterCriticalSection
                - LeaveCriticalSection
                - CommLog_PrintEx
                - LeaveCriticalSection
                - CommUpdateIOCount
                - LeaveCriticalSection
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1098,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1101,26'
              BranchSideFuncs:
                - CommUpdateIOCount
                - LeaveCriticalSection
                - LeaveCriticalSection
                - CommLog_PrintEx
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1110,18'
              BranchSideFuncs:
                - LeaveCriticalSection
                - CommLog_PrintEx
                - LeaveCriticalSection
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1101,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1103,26'
              BranchSideFuncs:
                - LeaveCriticalSection
                - CommLog_PrintEx
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1107,3'
              BranchSideFuncs:
                - LeaveCriticalSection
                - CommLog_PrintEx
                - LeaveCriticalSection
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1112,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1114,3'
              BranchSideFuncs:
                - CommLog_PrintEx
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1126,25'
              BranchSideFuncs:
                - LeaveCriticalSection
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1072,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1073,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1078,6'
          Dst:             is_wait_set
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1082,3'
          Dst:             EnterCriticalSection
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1084,3'
          Dst:             LeaveCriticalSection
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1087,10'
          Dst:             is_wait_set
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1088,4'
          Dst:             Sleep
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1090,3'
          Dst:             EnterCriticalSection
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1092,3'
          Dst:             LeaveCriticalSection
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1096,2'
          Dst:             EnterCriticalSection
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1101,8'
          Dst:             CommUpdateIOCount
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1103,4'
          Dst:             LeaveCriticalSection
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1114,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1122,3'
          Dst:             LeaveCriticalSection
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1128,2'
          Dst:             LeaveCriticalSection
    - functionName:    get_modemstatus
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1029
      functionLinenumberEnd: 1046
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pComm
        - pRegister
      BBCount:         18
      ICount:          104
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - get_raw_modemstatus
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1032,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1033,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1035,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1036,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1037,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1038,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1038,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1039,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1040,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1040,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1041,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1042,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1042,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1043,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1045,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1032,7'
          Dst:             get_raw_modemstatus
    - functionName:    clear_rts
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1000
      functionLinenumberEnd: 1013
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - pComm
      BBCount:         14
      ICount:          60
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - SetLastError
        - clear_lines
        - get_handflow
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1002,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1002,2'
              BranchSideFuncs:
                - get_handflow
                - clear_lines
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1002,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1003,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1004,3'
              BranchSideFuncs:
                - clear_lines
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1006,15'
              BranchSideFuncs:
                - clear_lines
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1006,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1008,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1012,21'
              BranchSideFuncs:
                - clear_lines
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1002,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1003,7'
          Dst:             get_handflow
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1008,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1012,9'
          Dst:             clear_lines
    - functionName:    get_handflow
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 812
      functionLinenumberEnd: 874
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pComm
        - pHandflow
      BBCount:         42
      ICount:          231
      EdgeCount:       51
      CyclomaticComplexity: 11
      functionsReached:
        - SetLastError
        - tcgetattr
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:815,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:815,2'
              BranchSideFuncs:
                - winpr_int_assert
                - tcgetattr
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:815,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:816,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:816,2'
              BranchSideFuncs:
                - tcgetattr
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:816,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:818,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:820,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:826,2'
              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:846,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:848,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:849,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:851,21'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:851,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:852,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:854,23'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:854,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:855,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:857,21'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:857,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:858,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:862,21'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:862,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:863,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:865,21'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:865,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:866,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:870,24'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:815,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:816,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:818,6'
          Dst:             tcgetattr
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:820,3'
          Dst:             SetLastError
    - functionName:    set_rts
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 983
      functionLinenumberEnd: 997
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - pComm
      BBCount:         14
      ICount:          60
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - SetLastError
        - get_handflow
        - set_lines
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:985,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:985,2'
              BranchSideFuncs:
                - get_handflow
                - set_lines
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:985,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:987,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:988,3'
              BranchSideFuncs:
                - set_lines
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:990,15'
              BranchSideFuncs:
                - set_lines
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:990,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:992,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:996,19'
              BranchSideFuncs:
                - set_lines
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:985,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:987,7'
          Dst:             get_handflow
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:992,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:996,9'
          Dst:             set_lines
    - functionName:    clear_dtr
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 963
      functionLinenumberEnd: 980
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - pComm
      BBCount:         20
      ICount:          75
      EdgeCount:       22
      CyclomaticComplexity: 4
      functionsReached:
        - SetLastError
        - clear_lines
        - get_handflow
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:965,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:965,2'
              BranchSideFuncs:
                - get_handflow
                - winpr_int_assert
                - clear_lines
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:965,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:967,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:968,3'
              BranchSideFuncs:
                - winpr_int_assert
                - clear_lines
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:971,2'
              BranchSideFuncs:
                - winpr_int_assert
                - clear_lines
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:971,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:971,2'
              BranchSideFuncs:
                - clear_lines
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:971,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:973,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:975,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:979,21'
              BranchSideFuncs:
                - clear_lines
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:965,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:967,7'
          Dst:             get_handflow
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:971,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:975,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:979,9'
          Dst:             clear_lines
    - functionName:    set_dtr
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 943
      functionLinenumberEnd: 960
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - pComm
      BBCount:         20
      ICount:          75
      EdgeCount:       22
      CyclomaticComplexity: 4
      functionsReached:
        - SetLastError
        - get_handflow
        - set_lines
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:945,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:945,2'
              BranchSideFuncs:
                - get_handflow
                - winpr_int_assert
                - set_lines
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:945,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:947,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:948,3'
              BranchSideFuncs:
                - winpr_int_assert
                - set_lines
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:951,2'
              BranchSideFuncs:
                - winpr_int_assert
                - set_lines
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:951,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:951,2'
              BranchSideFuncs:
                - set_lines
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:951,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:953,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:955,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:959,19'
              BranchSideFuncs:
                - set_lines
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:945,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:947,7'
          Dst:             get_handflow
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:951,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:955,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:959,9'
          Dst:             set_lines
    - functionName:    get_timeouts
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 915
      functionLinenumberEnd: 925
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pComm
        - pTimeouts
      BBCount:         15
      ICount:          79
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:916,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:916,2'
              BranchSideFuncs:
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:916,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:917,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:917,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:917,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:916,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:917,2'
          Dst:             winpr_int_assert
    - functionName:    set_timeouts
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 877
      functionLinenumberEnd: 912
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pComm
        - pTimeouts
      BBCount:         21
      ICount:          134
      EdgeCount:       23
      CyclomaticComplexity: 4
      functionsReached:
        - CommLog_PrintEx
        - SetLastError
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:878,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:878,2'
              BranchSideFuncs:
                - winpr_int_assert
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:878,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:879,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:879,2'
              BranchSideFuncs:
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:879,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:884,51'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:885,7'
              BranchSideFuncs:
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:894,40'
              BranchSideFuncs:
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:884,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:887,3'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:894,40'
              BranchSideFuncs:
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:878,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:879,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:887,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:890,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:900,2'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:902,2'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:904,2'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:906,2'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:908,2'
          Dst:             CommLog_PrintEx
    - functionName:    set_handflow
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 627
      functionLinenumberEnd: 809
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pComm
        - pHandflow
      BBCount:         87
      ICount:          522
      EdgeCount:       112
      CyclomaticComplexity: 27
      functionsReached:
        - CommLog_PrintEx
        - GetLastError
        - SetLastError
        - comm_ioctl_tcsetattr
        - tcgetattr
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:631,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:631,2'
              BranchSideFuncs:
                - winpr_int_assert
                - tcgetattr
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:631,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:632,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:632,2'
              BranchSideFuncs:
                - tcgetattr
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:632,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:634,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:636,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:643,9'
              BranchSideFuncs:
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:643,59'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:644,8'
              BranchSideFuncs:
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:645,8'
              BranchSideFuncs:
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:644,54'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:645,8'
              BranchSideFuncs:
                - CommLog_PrintEx
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:648,3'
              BranchSideFuncs:
                - CommLog_PrintEx
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:645,58'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:646,9'
              BranchSideFuncs:
                - CommLog_PrintEx
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:655,7'
              BranchSideFuncs:
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:643,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:648,3'
              BranchSideFuncs:
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:655,7'
              BranchSideFuncs:
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:655,57'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:656,7'
              BranchSideFuncs:
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:658,19'
              BranchSideFuncs:
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:655,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:658,19'
              BranchSideFuncs:
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:662,19'
              BranchSideFuncs:
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:673,61'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:674,8'
              BranchSideFuncs:
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:675,8'
              BranchSideFuncs:
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:674,56'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:675,8'
              BranchSideFuncs:
                - CommLog_PrintEx
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:678,3'
              BranchSideFuncs:
                - CommLog_PrintEx
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:675,60'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:676,9'
              BranchSideFuncs:
                - CommLog_PrintEx
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:685,7'
              BranchSideFuncs:
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:673,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:678,3'
              BranchSideFuncs:
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:685,7'
              BranchSideFuncs:
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:685,59'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:686,7'
              BranchSideFuncs:
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:688,19'
              BranchSideFuncs:
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:685,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:688,19'
              BranchSideFuncs:
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:692,19'
              BranchSideFuncs:
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:697,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:700,3'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:705,6'
              BranchSideFuncs:
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:705,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:708,3'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:713,6'
              BranchSideFuncs:
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:713,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:716,3'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:722,6'
              BranchSideFuncs:
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:722,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:725,3'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:731,6'
              BranchSideFuncs:
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:731,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:734,3'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:741,6'
              BranchSideFuncs:
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:741,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:743,19'
              BranchSideFuncs:
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:747,19'
              BranchSideFuncs:
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:750,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:752,19'
              BranchSideFuncs:
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:756,19'
              BranchSideFuncs:
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:760,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:763,19'
              BranchSideFuncs:
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:767,19'
              BranchSideFuncs:
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:770,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:772,19'
              BranchSideFuncs:
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:776,19'
              BranchSideFuncs:
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:780,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:782,3'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:788,6'
              BranchSideFuncs:
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:788,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:791,3'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:798,21'
              BranchSideFuncs:
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:801,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:803,3'
              BranchSideFuncs:
                - GetLastError
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:808,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:631,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:632,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:634,6'
          Dst:             tcgetattr
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:636,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:648,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:678,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:700,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:701,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:708,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:709,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:716,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:717,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:725,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:726,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:734,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:735,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:782,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:783,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:791,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:792,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:801,6'
          Dst:             comm_ioctl_tcsetattr
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:803,3'
          Dst:             GetLastError
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:803,3'
          Dst:             CommLog_PrintEx
    - functionName:    get_line_control
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 579
      functionLinenumberEnd: 624
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pComm
        - pLineControl
      BBCount:         29
      ICount:          156
      EdgeCount:       31
      CyclomaticComplexity: 4
      functionsReached:
        - SetLastError
        - tcgetattr
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:582,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:582,2'
              BranchSideFuncs:
                - winpr_int_assert
                - tcgetattr
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:582,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:583,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:583,2'
              BranchSideFuncs:
                - tcgetattr
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:583,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:585,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:587,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:591,43'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:593,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:595,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:597,26'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:597,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:599,42'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:604,42'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:607,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:610,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:613,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:616,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:619,4'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:582,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:583,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:585,6'
          Dst:             tcgetattr
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:587,3'
          Dst:             SetLastError
    - functionName:    set_line_control
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 462
      functionLinenumberEnd: 576
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pComm
        - pLineControl
      BBCount:         38
      ICount:          254
      EdgeCount:       75
      CyclomaticComplexity: 39
      functionsReached:
        - CommLog_PrintEx
        - GetLastError
        - SetLastError
        - comm_ioctl_tcsetattr
        - tcgetattr
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:466,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:466,2'
              BranchSideFuncs:
                - winpr_int_assert
                - tcgetattr
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:466,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:467,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:467,2'
              BranchSideFuncs:
                - tcgetattr
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:467,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:478,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:480,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:486,10'
              BranchSideFuncs:
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:486,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:489,20'
              BranchSideFuncs:
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:493,4'
              BranchSideFuncs:
                - CommLog_PrintEx
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:497,20'
              BranchSideFuncs:
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:501,4'
              BranchSideFuncs:
                - CommLog_PrintEx
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:507,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:510,20'
              BranchSideFuncs:
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:514,20'
              BranchSideFuncs:
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:519,20'
              BranchSideFuncs:
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:524,20'
              BranchSideFuncs:
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:528,20'
              BranchSideFuncs:
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:533,4'
              BranchSideFuncs:
                - CommLog_PrintEx
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:539,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:542,20'
              BranchSideFuncs:
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:547,20'
              BranchSideFuncs:
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:552,20'
              BranchSideFuncs:
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:557,20'
              BranchSideFuncs:
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:562,4'
              BranchSideFuncs:
                - CommLog_PrintEx
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:568,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:570,3'
              BranchSideFuncs:
                - GetLastError
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:575,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:466,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:467,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:478,6'
          Dst:             tcgetattr
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:480,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:493,4'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:501,4'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:533,4'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:562,4'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:568,6'
          Dst:             comm_ioctl_tcsetattr
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:570,3'
          Dst:             GetLastError
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:570,3'
          Dst:             CommLog_PrintEx
    - functionName:    get_serial_chars
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 431
      functionLinenumberEnd: 459
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pComm
        - pSerialChars
      BBCount:         18
      ICount:          78
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - SetLastError
        - tcgetattr
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:434,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:434,2'
              BranchSideFuncs:
                - winpr_int_assert
                - tcgetattr
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:434,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:435,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:435,2'
              BranchSideFuncs:
                - tcgetattr
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:435,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:437,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:439,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:443,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:434,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:435,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:437,6'
          Dst:             tcgetattr
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:439,3'
          Dst:             SetLastError
    - functionName:    set_serial_chars
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 357
      functionLinenumberEnd: 428
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pComm
        - pSerialChars
      BBCount:         32
      ICount:          189
      EdgeCount:       38
      CyclomaticComplexity: 8
      functionsReached:
        - CommLog_PrintEx
        - GetLastError
        - SetLastError
        - comm_ioctl_tcsetattr
        - tcgetattr
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:361,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:361,2'
              BranchSideFuncs:
                - winpr_int_assert
                - tcgetattr
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:361,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:362,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:362,2'
              BranchSideFuncs:
                - tcgetattr
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:362,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:364,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:366,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:381,6'
              BranchSideFuncs:
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:381,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:383,3'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:394,6'
              BranchSideFuncs:
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:394,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:396,3'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:403,6'
              BranchSideFuncs:
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:403,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:405,3'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:411,6'
              BranchSideFuncs:
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:411,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:413,22'
              BranchSideFuncs:
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:416,33'
              BranchSideFuncs:
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:420,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:422,3'
              BranchSideFuncs:
                - GetLastError
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:427,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:361,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:362,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:364,6'
          Dst:             tcgetattr
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:366,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:383,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:384,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:396,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:398,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:405,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:407,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:420,6'
          Dst:             comm_ioctl_tcsetattr
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:422,3'
          Dst:             GetLastError
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:422,3'
          Dst:             CommLog_PrintEx
    - functionName:    get_properties
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 206
      functionLinenumberEnd: 267
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pComm
        - pProperties
      BBCount:         22
      ICount:          132
      EdgeCount:       24
      CyclomaticComplexity: 4
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:207,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:207,2'
              BranchSideFuncs:
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:207,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:215,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:215,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:215,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:216,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:218,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:222,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:248,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:250,45'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:253,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:207,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:215,2'
          Dst:             winpr_int_assert
    - functionName:    get_baud_rate
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 317
      functionLinenumberEnd: 345
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pComm
        - pBaudRate
      BBCount:         24
      ICount:          114
      EdgeCount:       27
      CyclomaticComplexity: 5
      functionsReached:
        - CommLog_PrintEx
        - SetLastError
        - cfgetispeed
        - tcgetattr
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:321,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:321,2'
              BranchSideFuncs:
                - winpr_int_assert
                - tcgetattr
                - cfgetispeed
                - CommLog_PrintEx
                - SetLastError
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:321,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:322,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:322,2'
              BranchSideFuncs:
                - tcgetattr
                - cfgetispeed
                - CommLog_PrintEx
                - SetLastError
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:322,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:324,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:326,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:330,17'
              BranchSideFuncs:
                - cfgetispeed
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:332,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:334,18'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:341,2'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:334,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:336,37'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:339,2'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:321,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:322,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:324,6'
          Dst:             tcgetattr
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:326,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:330,17'
          Dst:             cfgetispeed
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:341,2'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:343,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: 271
      functionLinenumberEnd: 314
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pComm
        - pBaudRate
      BBCount:         34
      ICount:          157
      EdgeCount:       39
      CyclomaticComplexity: 7
      functionsReached:
        - CommLog_PrintEx
        - GetLastError
        - SetLastError
        - cfgetispeed
        - cfsetspeed
        - comm_ioctl_tcsetattr
        - tcgetattr
        - winpr_int_assert
      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:
                - winpr_int_assert
                - tcgetattr
                - CommLog_PrintEx
                - SetLastError
                - cfsetspeed
                - cfgetispeed
                - winpr_int_assert
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:275,2'
              BranchSideFuncs:
                - winpr_int_assert
        - 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
                - CommLog_PrintEx
                - SetLastError
                - cfsetspeed
                - cfgetispeed
                - winpr_int_assert
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:276,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:278,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:281,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:285,11'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
                - cfsetspeed
                - cfgetispeed
                - winpr_int_assert
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:285,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:287,18'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
                - cfsetspeed
                - cfgetispeed
                - winpr_int_assert
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:310,2'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:287,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:289,26'
              BranchSideFuncs:
                - cfsetspeed
                - cfgetispeed
                - winpr_int_assert
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:308,2'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
                - cfsetspeed
                - cfgetispeed
                - winpr_int_assert
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:290,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:292,5'
              BranchSideFuncs:
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:297,4'
              BranchSideFuncs:
                - cfgetispeed
                - winpr_int_assert
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:297,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:297,4'
              BranchSideFuncs:
                - comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:297,4'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:299,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:301,5'
              BranchSideFuncs:
                - GetLastError
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:306,4'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:275,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:276,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:278,6'
          Dst:             tcgetattr
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:281,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:290,8'
          Dst:             cfsetspeed
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:292,5'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:297,4'
          Dst:             cfgetispeed
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:297,4'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:299,8'
          Dst:             comm_ioctl_tcsetattr
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:301,5'
          Dst:             GetLastError
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:301,5'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:310,2'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:312,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: 1667
      functionLinenumberEnd: 1668
      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: 154
      functionLinenumberEnd: 174
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pComm
        - pWaitMask
      BBCount:         12
      ICount:          73
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - CommLog_PrintEx
        - SerialSys_s
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_sercx_sys.c:156,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx_sys.c:156,2'
              BranchSideFuncs:
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx_sys.c:156,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_sercx_sys.c:160,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx_sys.c:162,3'
              BranchSideFuncs:
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx_sys.c:173,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_sercx_sys.c:155,36'
          Dst:             SerialSys_s
        - Src:             'winpr/libwinpr/comm/comm_sercx_sys.c:156,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_sercx_sys.c:162,3'
          Dst:             CommLog_PrintEx
    - functionName:    get_handflow
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_sercx_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 123
      functionLinenumberEnd: 138
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pComm
        - pHandflow
      BBCount:         3
      ICount:          47
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - SerialSys_s
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_sercx_sys.c:124,36'
          Dst:             SerialSys_s
    - functionName:    set_handflow
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_sercx_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 32
      functionLinenumberEnd: 120
      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_PrintEx
        - SerialSys_s
        - SetLastError
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_sercx_sys.c:50,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx_sys.c:52,7'
              BranchSideFuncs:
                - SetLastError
                - SetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx_sys.c:74,20'
              BranchSideFuncs:
                - SetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
        - Branch String:   'winpr/libwinpr/comm/comm_sercx_sys.c:52,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx_sys.c:54,4'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
                - SetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx_sys.c:58,7'
              BranchSideFuncs:
                - SetLastError
                - SetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
        - Branch String:   'winpr/libwinpr/comm/comm_sercx_sys.c:58,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx_sys.c:60,4'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
                - SetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx_sys.c:64,7'
              BranchSideFuncs:
                - SetLastError
                - SetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
        - Branch String:   'winpr/libwinpr/comm/comm_sercx_sys.c:64,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx_sys.c:66,4'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
                - SetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx_sys.c:70,3'
              BranchSideFuncs:
                - SetLastError
                - SetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
        - Branch String:   'winpr/libwinpr/comm/comm_sercx_sys.c:74,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx_sys.c:76,7'
              BranchSideFuncs:
                - SetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx_sys.c:116,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_sercx_sys.c:76,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx_sys.c:78,4'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx_sys.c:82,7'
              BranchSideFuncs:
                - SetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
        - Branch String:   'winpr/libwinpr/comm/comm_sercx_sys.c:82,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx_sys.c:84,4'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx_sys.c:88,7'
              BranchSideFuncs:
                - SetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
        - Branch String:   'winpr/libwinpr/comm/comm_sercx_sys.c:88,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx_sys.c:90,4'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx_sys.c:94,7'
              BranchSideFuncs:
                - SetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
                - CommLog_PrintEx
        - Branch String:   'winpr/libwinpr/comm/comm_sercx_sys.c:94,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx_sys.c:96,4'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx_sys.c:100,7'
              BranchSideFuncs:
                - SetLastError
                - CommLog_PrintEx
                - CommLog_PrintEx
        - Branch String:   'winpr/libwinpr/comm/comm_sercx_sys.c:100,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx_sys.c:102,4'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx_sys.c:106,7'
              BranchSideFuncs:
                - SetLastError
                - CommLog_PrintEx
        - Branch String:   'winpr/libwinpr/comm/comm_sercx_sys.c:106,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx_sys.c:108,4'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx_sys.c:112,3'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_sercx_sys.c:116,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx_sys.c:117,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx_sys.c:119,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_sercx_sys.c:35,36'
          Dst:             SerialSys_s
        - Src:             'winpr/libwinpr/comm/comm_sercx_sys.c:54,4'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_sercx_sys.c:60,4'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_sercx_sys.c:66,4'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_sercx_sys.c:70,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_sercx_sys.c:78,4'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_sercx_sys.c:84,4'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_sercx_sys.c:90,4'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_sercx_sys.c:96,4'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_sercx_sys.c:102,4'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_sercx_sys.c:108,4'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_sercx_sys.c:112,3'
          Dst:             SetLastError
    - functionName:    SerCxSys_s
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_sercx_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 213
      functionLinenumberEnd: 261
      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:215,36'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx_sys.c:215,23'
              BranchSideFuncs:
                - SerialSys_s
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx_sys.c:215,36'
              BranchSideFuncs:
                - SerialSys_s
        - Branch String:   'winpr/libwinpr/comm/comm_sercx_sys.c:216,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx_sys.c:217,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx_sys.c:219,27'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_sercx_sys.c:215,36'
          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:         32
      ICount:          123
      EdgeCount:       36
      CyclomaticComplexity: 6
      functionsReached:
        - CommLog_PrintEx
        - SerialSys_s
        - SetLastError
        - winpr_int_assert
      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:
                - winpr_int_assert
                - winpr_int_assert
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx2_sys.c:102,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_sercx2_sys.c:103,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx2_sys.c:103,2'
              BranchSideFuncs:
                - winpr_int_assert
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx2_sys.c:103,2'
              BranchSideFuncs:
                - winpr_int_assert
        - 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_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx2_sys.c:104,2'
              BranchSideFuncs:
                - winpr_int_assert
        - 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_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx2_sys.c:116,8'
              BranchSideFuncs:
                - CommLog_PrintEx
                - 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_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx2_sys.c:116,8'
              BranchSideFuncs:
                - CommLog_PrintEx
                - 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_PrintEx
                - 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,36'
          Dst:             SerialSys_s
        - Src:             'winpr/libwinpr/comm/comm_sercx2_sys.c:102,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_sercx2_sys.c:103,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_sercx2_sys.c:104,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_sercx2_sys.c:110,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_sercx2_sys.c:112,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_sercx2_sys.c:118,3'
          Dst:             CommLog_PrintEx
        - 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: 73
      functionLinenumberEnd: 96
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pComm
        - pWaitMask
      BBCount:         24
      ICount:          97
      EdgeCount:       25
      CyclomaticComplexity: 3
      functionsReached:
        - CommLog_PrintEx
        - SerialSys_s
        - winpr_int_assert
      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:
                - winpr_int_assert
                - winpr_int_assert
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx2_sys.c:76,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_sercx2_sys.c:77,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx2_sys.c:77,2'
              BranchSideFuncs:
                - winpr_int_assert
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx2_sys.c:77,2'
              BranchSideFuncs:
                - winpr_int_assert
        - 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_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx2_sys.c:78,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_sercx2_sys.c:82,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx2_sys.c:84,3'
              BranchSideFuncs:
                - CommLog_PrintEx
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx2_sys.c:95,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_sercx2_sys.c:74,36'
          Dst:             SerialSys_s
        - Src:             'winpr/libwinpr/comm/comm_sercx2_sys.c:76,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_sercx2_sys.c:77,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_sercx2_sys.c:78,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_sercx2_sys.c:84,3'
          Dst:             CommLog_PrintEx
    - functionName:    get_serial_chars
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_sercx2_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 52
      functionLinenumberEnd: 57
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pComm
        - pSerialChars
      BBCount:         15
      ICount:          46
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_sercx2_sys.c:53,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx2_sys.c:53,2'
              BranchSideFuncs:
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx2_sys.c:53,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_sercx2_sys.c:54,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx2_sys.c:54,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx2_sys.c:54,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_sercx2_sys.c:53,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_sercx2_sys.c:54,2'
          Dst:             winpr_int_assert
    - functionName:    set_serial_chars
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_sercx2_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 44
      functionLinenumberEnd: 48
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pComm
        - pSerialChars
      BBCount:         15
      ICount:          44
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_sercx2_sys.c:45,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx2_sys.c:45,2'
              BranchSideFuncs:
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx2_sys.c:45,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_sercx2_sys.c:46,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx2_sys.c:46,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx2_sys.c:46,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_sercx2_sys.c:45,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_sercx2_sys.c:46,2'
          Dst:             winpr_int_assert
    - 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,36'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx2_sys.c:166,23'
              BranchSideFuncs:
                - SerialSys_s
                - SerCxSys_s
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx2_sys.c:166,36'
              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,36'
          Dst:             SerialSys_s
        - Src:             'winpr/libwinpr/comm/comm_sercx2_sys.c:167,35'
          Dst:             SerCxSys_s
    - functionName:    NamedPipeGetFd
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 209
      functionLinenumberEnd: 219
      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:212,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:213,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:215,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:215,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:216,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:218,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/pipe/pipe.c:212,7'
          Dst:             NamedPipeIsHandled
    - functionName:    NamedPipeIsHandled
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 205
      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:205,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: 155
      functionLinenumberEnd: 178
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - Object
        - lpBuffer
        - nNumberOfBytesToWrite
        - lpNumberOfBytesWritten
        - lpOverlapped
      BBCount:         18
      ICount:          106
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - SetLastError
        - WLog_Print_dbg_tag
        - __errno_location
        - write
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:159,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:161,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2941
                - SetLastError
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:166,22'
              BranchSideFuncs:
                - write
                - __errno_location
                - __errno_location
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:171,27'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:171,31'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - write
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:171,2'
              BranchSideFuncs:
                - __errno_location
                - write
                - __errno_location
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:171,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:170,21'
              BranchSideFuncs:
                - write
                - __errno_location
                - __errno_location
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:173,7'
              BranchSideFuncs:
                - __errno_location
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:173,22'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:173,26'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:176,35'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:173,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:174,13'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:176,35'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/pipe/pipe.c:161,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/pipe/pipe.c:162,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/pipe/pipe.c:170,15'
          Dst:             write
        - Src:             'winpr/libwinpr/pipe/pipe.c:171,31'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/pipe/pipe.c:173,26'
          Dst:             __errno_location
    - functionName:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 216
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - tag
        - log_level
        - line
        - file
        - fkt
      BBCount:         9
      ICount:          67
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintMessageVA
      functionUses:    19
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/wlog.h:206,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/wlog.h:207,30'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessageVA
            - BranchSide:      'winpr/include/winpr/wlog.h:209,26'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessageVA
        - Branch String:   'winpr/include/winpr/wlog.h:209,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/wlog.h:209,7'
              BranchSideFuncs:
                - WLog_PrintMessageVA
            - BranchSide:      'winpr/include/winpr/wlog.h:212,4'
              BranchSideFuncs:
                - WLog_PrintMessageVA
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:207,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:209,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:213,4'
          Dst:             WLog_PrintMessageVA
    - functionName:    PipeRead
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 114
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - Object
        - lpBuffer
        - nNumberOfBytesToRead
        - lpNumberOfBytesRead
        - lpOverlapped
      BBCount:         22
      ICount:          123
      EdgeCount:       26
      CyclomaticComplexity: 6
      functionsReached:
        - SetLastError
        - WLog_Print_dbg_tag
        - __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_Print_dbg_tag.2941
                - SetLastError
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:126,22'
              BranchSideFuncs:
                - read
                - __errno_location
                - SetLastError
                - __errno_location
        - 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:147,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,5'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:147,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:148,33'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:150,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/pipe/pipe.c:121,3'
          Dst:             WLog_Print_dbg_tag
        - 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: 938
      functionLinenumberEnd: 941
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - Pipe
        - ClientComputerName
        - ClientComputerNameLength
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - SetLastError
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/pipe/pipe.c:939,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/pipe/pipe.c:940,2'
          Dst:             SetLastError
    - functionName:    GetNamedPipeClientComputerNameA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 929
      functionLinenumberEnd: 932
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - Pipe
        - ClientComputerName
        - ClientComputerNameLength
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - SetLastError
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/pipe/pipe.c:930,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/pipe/pipe.c:931,2'
          Dst:             SetLastError
    - functionName:    ImpersonateNamedPipeClient
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 920
      functionLinenumberEnd: 923
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - hNamedPipe
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - SetLastError
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/pipe/pipe.c:921,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/pipe/pipe.c:922,2'
          Dst:             SetLastError
    - functionName:    SetNamedPipeHandleState
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 880
      functionLinenumberEnd: 917
      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:886,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:888,29'
              BranchSideFuncs:
                - fcntl64
                - fcntl64
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:908,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:889,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:889,35'
              BranchSideFuncs:
                - fcntl64
                - fcntl64
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:889,58'
              BranchSideFuncs:
                - fcntl64
                - fcntl64
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:891,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:892,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:894,17'
              BranchSideFuncs:
                - fcntl64
                - fcntl64
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:896,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:897,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:899,7'
              BranchSideFuncs:
                - fcntl64
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:899,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:900,13'
              BranchSideFuncs:
                - fcntl64
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:902,13'
              BranchSideFuncs:
                - fcntl64
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:904,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:905,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:906,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:908,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:910,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:912,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:912,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:914,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:916,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/pipe/pipe.c:894,11'
          Dst:             fcntl64
        - Src:             'winpr/libwinpr/pipe/pipe.c:904,7'
          Dst:             fcntl64
    - functionName:    WaitNamedPipeW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 870
      functionLinenumberEnd: 873
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - lpNamedPipeName
        - nTimeOut
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - SetLastError
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/pipe/pipe.c:871,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/pipe/pipe.c:872,2'
          Dst:             SetLastError
    - functionName:    WaitNamedPipeA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 832
      functionLinenumberEnd: 867
      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:838,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:839,3'
              BranchSideFuncs:
                - GetNamedPipeUnixDomainSocketFilePathA
                - winpr_PathFileExists
                - free
                - Sleep
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:841,53'
              BranchSideFuncs:
                - GetNamedPipeUnixDomainSocketFilePathA
                - winpr_PathFileExists
                - free
                - Sleep
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:843,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:844,3'
              BranchSideFuncs:
                - winpr_PathFileExists
                - free
                - Sleep
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:846,6'
              BranchSideFuncs:
                - winpr_PathFileExists
                - free
                - Sleep
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:846,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:847,12'
              BranchSideFuncs:
                - winpr_PathFileExists
                - free
                - Sleep
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:849,12'
              BranchSideFuncs:
                - winpr_PathFileExists
                - free
                - Sleep
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:853,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:855,9'
              BranchSideFuncs:
                - Sleep
                - winpr_PathFileExists
                - free
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:865,7'
              BranchSideFuncs:
                - free
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:858,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:853,2'
              BranchSideFuncs:
                - free
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:860,11'
              BranchSideFuncs:
                - free
      Callsites:
        - Src:             'winpr/libwinpr/pipe/pipe.c:841,15'
          Dst:             GetNamedPipeUnixDomainSocketFilePathA
        - Src:             'winpr/libwinpr/pipe/pipe.c:853,10'
          Dst:             winpr_PathFileExists
        - Src:             'winpr/libwinpr/pipe/pipe.c:855,3'
          Dst:             Sleep
    - functionName:    TransactNamedPipe
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 825
      functionLinenumberEnd: 828
      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:         3
      ICount:          34
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - SetLastError
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/pipe/pipe.c:826,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/pipe/pipe.c:827,2'
          Dst:             SetLastError
    - functionName:    PeekNamedPipe
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 814
      functionLinenumberEnd: 817
      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:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - SetLastError
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/pipe/pipe.c:815,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/pipe/pipe.c:816,2'
          Dst:             SetLastError
    - functionName:    DisconnectNamedPipe
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 797
      functionLinenumberEnd: 807
      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:801,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:801,6'
              BranchSideFuncs:
                - close
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:803,9'
              BranchSideFuncs:
                - close
      Callsites:
        - Src:             'winpr/libwinpr/pipe/pipe.c:803,3'
          Dst:             close
    - functionName:    ConnectNamedPipe
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 745
      functionLinenumberEnd: 794
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - hNamedPipe
        - lpOverlapped
      BBCount:         17
      ICount:          127
      EdgeCount:       23
      CyclomaticComplexity: 8
      functionsReached:
        - SetEvent
        - SetLastError
        - WLog_Print_dbg_tag
        - accept
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:750,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:752,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2941
                - SetLastError
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:757,7'
              BranchSideFuncs:
                - accept
                - WLog_Print_dbg_tag.2941
                - SetEvent
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:757,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:758,3'
              BranchSideFuncs:
                - accept
                - WLog_Print_dbg_tag.2941
                - SetEvent
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:760,34'
              BranchSideFuncs:
                - accept
                - WLog_Print_dbg_tag.2941
                - SetEvent
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:762,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:764,22'
              BranchSideFuncs:
                - SetEvent
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:779,8'
              BranchSideFuncs:
                - SetEvent
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:768,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:770,4'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2941
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:774,26'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:779,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:780,4'
              BranchSideFuncs:
                - SetEvent
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:782,7'
              BranchSideFuncs:
                - SetEvent
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:782,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:783,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:785,30'
              BranchSideFuncs:
                - SetEvent
      Callsites:
        - Src:             'winpr/libwinpr/pipe/pipe.c:752,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/pipe/pipe.c:753,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/pipe/pipe.c:766,12'
          Dst:             accept
        - Src:             'winpr/libwinpr/pipe/pipe.c:770,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/pipe/pipe.c:790,9'
          Dst:             SetEvent
    - functionName:    CreateNamedPipeW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 738
      functionLinenumberEnd: 741
      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:         3
      ICount:          37
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - SetLastError
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/pipe/pipe.c:739,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/pipe/pipe.c:740,2'
          Dst:             SetLastError
    - functionName:    NamedPipeCloseHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 222
      functionLinenumberEnd: 248
      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:229,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:230,3'
              BranchSideFuncs:
                - free
                - free
                - free
                - free
                - close
                - close
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:233,6'
              BranchSideFuncs:
                - free
                - free
                - free
                - free
                - close
                - close
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:233,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:234,3'
              BranchSideFuncs:
                - free
                - free
                - free
                - free
                - close
                - close
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:236,7'
              BranchSideFuncs:
                - free
                - free
                - free
                - free
                - close
                - close
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:240,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:241,9'
              BranchSideFuncs:
                - close
                - free
                - close
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:243,6'
              BranchSideFuncs:
                - free
                - close
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:243,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:244,9'
              BranchSideFuncs:
                - close
                - free
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:246,7'
              BranchSideFuncs:
                - free
      Callsites:
        - Src:             'winpr/libwinpr/pipe/pipe.c:229,7'
          Dst:             NamedPipeIsHandled
        - Src:             'winpr/libwinpr/pipe/pipe.c:241,3'
          Dst:             close
        - Src:             'winpr/libwinpr/pipe/pipe.c:244,3'
          Dst:             close
    - functionName:    winpr_unref_named_pipe
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 524
      functionLinenumberEnd: 561
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - pNamedPipe
      BBCount:         46
      ICount:          165
      EdgeCount:       50
      CyclomaticComplexity: 6
      functionsReached:
        - ArrayList_Count
        - ArrayList_GetItem
        - ArrayList_Lock
        - ArrayList_Remove
        - ArrayList_Unlock
        - close
        - strcmp
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:527,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:528,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - ArrayList_Lock
                - ArrayList_Count
                - ArrayList_Unlock
                - ArrayList_GetItem
                - winpr_int_assert
                - strcmp
                - winpr_int_assert
                - winpr_int_assert
                - ArrayList_Remove
                - close
                - free
                - free
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:530,2'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - ArrayList_Lock
                - ArrayList_Count
                - ArrayList_Unlock
                - ArrayList_GetItem
                - winpr_int_assert
                - strcmp
                - winpr_int_assert
                - winpr_int_assert
                - ArrayList_Remove
                - close
                - free
                - free
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:530,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:530,2'
              BranchSideFuncs:
                - winpr_int_assert
                - ArrayList_Lock
                - ArrayList_Count
                - ArrayList_Unlock
                - ArrayList_GetItem
                - winpr_int_assert
                - strcmp
                - winpr_int_assert
                - winpr_int_assert
                - ArrayList_Remove
                - close
                - free
                - free
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:530,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:531,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:531,2'
              BranchSideFuncs:
                - ArrayList_Lock
                - ArrayList_Count
                - ArrayList_Unlock
                - ArrayList_GetItem
                - winpr_int_assert
                - strcmp
                - winpr_int_assert
                - winpr_int_assert
                - ArrayList_Remove
                - close
                - free
                - free
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:531,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:535,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:538,54'
              BranchSideFuncs:
                - ArrayList_GetItem
                - winpr_int_assert
                - strcmp
                - winpr_int_assert
                - winpr_int_assert
                - ArrayList_Unlock
                - ArrayList_Remove
                - close
                - free
                - free
                - ArrayList_Count
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:560,19'
              BranchSideFuncs:
                - ArrayList_Unlock
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:539,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:539,3'
              BranchSideFuncs:
                - strcmp
                - winpr_int_assert
                - winpr_int_assert
                - ArrayList_Unlock
                - ArrayList_Remove
                - close
                - free
                - free
                - ArrayList_Count
                - ArrayList_GetItem
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:539,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:541,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:543,4'
              BranchSideFuncs:
                - ArrayList_Count
                - ArrayList_Unlock
                - ArrayList_GetItem
                - winpr_int_assert
                - strcmp
                - winpr_int_assert
                - winpr_int_assert
                - ArrayList_Remove
                - close
                - free
                - free
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:558,2'
              BranchSideFuncs:
                - ArrayList_Count
                - ArrayList_Unlock
                - ArrayList_GetItem
                - winpr_int_assert
                - strcmp
                - winpr_int_assert
                - winpr_int_assert
                - ArrayList_Remove
                - close
                - free
                - free
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:543,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:543,4'
              BranchSideFuncs:
                - winpr_int_assert
                - ArrayList_Unlock
                - ArrayList_Remove
                - close
                - free
                - free
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:543,4'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:544,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:544,4'
              BranchSideFuncs:
                - ArrayList_Unlock
                - ArrayList_Remove
                - close
                - free
                - free
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:544,4'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:546,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:550,22'
              BranchSideFuncs:
                - ArrayList_Remove
                - close
                - free
                - free
                - ArrayList_Unlock
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:556,4'
              BranchSideFuncs:
                - ArrayList_Unlock
      Callsites:
        - Src:             'winpr/libwinpr/pipe/pipe.c:530,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/pipe/pipe.c:531,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/pipe/pipe.c:533,2'
          Dst:             ArrayList_Lock
        - Src:             'winpr/libwinpr/pipe/pipe.c:535,33'
          Dst:             ArrayList_Count
        - Src:             'winpr/libwinpr/pipe/pipe.c:538,36'
          Dst:             ArrayList_GetItem
        - Src:             'winpr/libwinpr/pipe/pipe.c:539,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/pipe/pipe.c:541,8'
          Dst:             strcmp
        - Src:             'winpr/libwinpr/pipe/pipe.c:543,4'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/pipe/pipe.c:544,4'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/pipe/pipe.c:550,5'
          Dst:             ArrayList_Remove
        - Src:             'winpr/libwinpr/pipe/pipe.c:551,5'
          Dst:             close
        - Src:             'winpr/libwinpr/pipe/pipe.c:560,2'
          Dst:             ArrayList_Unlock
    - functionName:    InitWinPRPipeModule
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 461
      functionLinenumberEnd: 467
      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:462,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:462,6'
              BranchSideFuncs:
                - ArrayList_New
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:462,6'
              BranchSideFuncs:
                - ArrayList_New
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:462,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:463,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:465,29'
              BranchSideFuncs:
                - ArrayList_New
      Callsites:
        - Src:             'winpr/libwinpr/pipe/pipe.c:465,29'
          Dst:             ArrayList_New
    - functionName:    CreateNamedPipeA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 566
      functionLinenumberEnd: 730
      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:         57
      ICount:          444
      EdgeCount:       79
      CyclomaticComplexity: 24
      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_Print_dbg_tag
        - __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:574,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:576,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2941
                - SetLastError
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:581,7'
              BranchSideFuncs:
                - InitWinPRPipeModule
                - calloc
                - ArrayList_Lock
                - WINPR_HANDLE_SET_TYPE_AND_MODE.2952
                - _strdup
                - NamedPipeCloseHandle
                - ArrayList_Unlock
                - close
                - GetNamedPipeNameWithoutPrefixA
                - GetNamedPipeUnixDomainSocketFilePathA
                - ArrayList_Count
                - dup
                - ArrayList_Unlock
                - WLog_Print_dbg_tag.2941
                - GetNamedPipeUnixDomainSocketBaseFilePathA
                - winpr_PathFileExists
                - CreateDirectoryA
                - free
                - UnixChangeFileMode
                - free
                - winpr_PathFileExists
                - socket
                - snprintf
                - bind
                - listen
                - UnixChangeFileMode
                - malloc
                - _strdup
                - free
                - ArrayList_Append
                - free
                - free
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
                - 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:
                - InitWinPRPipeModule
                - calloc
                - ArrayList_Lock
                - WINPR_HANDLE_SET_TYPE_AND_MODE.2952
                - _strdup
                - NamedPipeCloseHandle
                - ArrayList_Unlock
                - close
                - GetNamedPipeNameWithoutPrefixA
                - GetNamedPipeUnixDomainSocketFilePathA
                - ArrayList_Count
                - dup
                - ArrayList_Unlock
                - WLog_Print_dbg_tag.2941
                - GetNamedPipeUnixDomainSocketBaseFilePathA
                - winpr_PathFileExists
                - CreateDirectoryA
                - free
                - UnixChangeFileMode
                - free
                - winpr_PathFileExists
                - socket
                - snprintf
                - bind
                - listen
                - UnixChangeFileMode
                - malloc
                - _strdup
                - free
                - ArrayList_Append
                - free
                - free
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
                - winpr_DeleteFile
                - ArrayList_GetItem
                - strcmp
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:584,7'
              BranchSideFuncs:
                - InitWinPRPipeModule
                - calloc
                - ArrayList_Lock
                - WINPR_HANDLE_SET_TYPE_AND_MODE.2952
                - _strdup
                - NamedPipeCloseHandle
                - ArrayList_Unlock
                - close
                - GetNamedPipeNameWithoutPrefixA
                - GetNamedPipeUnixDomainSocketFilePathA
                - ArrayList_Count
                - dup
                - ArrayList_Unlock
                - WLog_Print_dbg_tag.2941
                - GetNamedPipeUnixDomainSocketBaseFilePathA
                - winpr_PathFileExists
                - CreateDirectoryA
                - free
                - UnixChangeFileMode
                - free
                - winpr_PathFileExists
                - socket
                - snprintf
                - bind
                - listen
                - UnixChangeFileMode
                - malloc
                - _strdup
                - free
                - ArrayList_Append
                - free
                - free
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
                - winpr_DeleteFile
                - ArrayList_GetItem
                - strcmp
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:584,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:585,3'
              BranchSideFuncs:
                - calloc
                - ArrayList_Lock
                - WINPR_HANDLE_SET_TYPE_AND_MODE.2952
                - _strdup
                - NamedPipeCloseHandle
                - ArrayList_Unlock
                - close
                - GetNamedPipeNameWithoutPrefixA
                - GetNamedPipeUnixDomainSocketFilePathA
                - ArrayList_Count
                - dup
                - ArrayList_Unlock
                - WLog_Print_dbg_tag.2941
                - GetNamedPipeUnixDomainSocketBaseFilePathA
                - winpr_PathFileExists
                - CreateDirectoryA
                - free
                - UnixChangeFileMode
                - free
                - winpr_PathFileExists
                - socket
                - snprintf
                - bind
                - listen
                - UnixChangeFileMode
                - malloc
                - _strdup
                - free
                - ArrayList_Append
                - free
                - free
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
                - winpr_DeleteFile
                - ArrayList_GetItem
                - strcmp
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:587,34'
              BranchSideFuncs:
                - calloc
                - ArrayList_Lock
                - WINPR_HANDLE_SET_TYPE_AND_MODE.2952
                - _strdup
                - NamedPipeCloseHandle
                - ArrayList_Unlock
                - close
                - GetNamedPipeNameWithoutPrefixA
                - GetNamedPipeUnixDomainSocketFilePathA
                - ArrayList_Count
                - dup
                - ArrayList_Unlock
                - WLog_Print_dbg_tag.2941
                - GetNamedPipeUnixDomainSocketBaseFilePathA
                - winpr_PathFileExists
                - CreateDirectoryA
                - free
                - UnixChangeFileMode
                - free
                - winpr_PathFileExists
                - socket
                - snprintf
                - bind
                - listen
                - UnixChangeFileMode
                - malloc
                - _strdup
                - free
                - ArrayList_Append
                - free
                - free
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
                - 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:
                - ArrayList_Lock
                - WINPR_HANDLE_SET_TYPE_AND_MODE.2952
                - _strdup
                - NamedPipeCloseHandle
                - ArrayList_Unlock
                - close
                - GetNamedPipeNameWithoutPrefixA
                - GetNamedPipeUnixDomainSocketFilePathA
                - ArrayList_Count
                - dup
                - ArrayList_Unlock
                - WLog_Print_dbg_tag.2941
                - GetNamedPipeUnixDomainSocketBaseFilePathA
                - winpr_PathFileExists
                - CreateDirectoryA
                - free
                - UnixChangeFileMode
                - free
                - winpr_PathFileExists
                - socket
                - snprintf
                - bind
                - listen
                - UnixChangeFileMode
                - malloc
                - _strdup
                - free
                - ArrayList_Append
                - free
                - free
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
                - winpr_DeleteFile
                - ArrayList_GetItem
                - strcmp
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:592,17'
              BranchSideFuncs:
                - ArrayList_Lock
                - WINPR_HANDLE_SET_TYPE_AND_MODE.2952
                - _strdup
                - NamedPipeCloseHandle
                - ArrayList_Unlock
                - close
                - GetNamedPipeNameWithoutPrefixA
                - GetNamedPipeUnixDomainSocketFilePathA
                - ArrayList_Count
                - dup
                - ArrayList_Unlock
                - WLog_Print_dbg_tag.2941
                - GetNamedPipeUnixDomainSocketBaseFilePathA
                - winpr_PathFileExists
                - CreateDirectoryA
                - free
                - UnixChangeFileMode
                - free
                - winpr_PathFileExists
                - socket
                - snprintf
                - bind
                - listen
                - UnixChangeFileMode
                - malloc
                - _strdup
                - free
                - ArrayList_Append
                - free
                - free
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
                - winpr_DeleteFile
                - ArrayList_GetItem
                - strcmp
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:597,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:598,3'
              BranchSideFuncs:
                - GetNamedPipeNameWithoutPrefixA
                - NamedPipeCloseHandle
                - ArrayList_Unlock
                - close
                - GetNamedPipeUnixDomainSocketFilePathA
                - ArrayList_Count
                - dup
                - ArrayList_Unlock
                - WLog_Print_dbg_tag.2941
                - GetNamedPipeUnixDomainSocketBaseFilePathA
                - winpr_PathFileExists
                - CreateDirectoryA
                - free
                - UnixChangeFileMode
                - free
                - winpr_PathFileExists
                - socket
                - snprintf
                - bind
                - listen
                - UnixChangeFileMode
                - malloc
                - _strdup
                - free
                - ArrayList_Append
                - free
                - free
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
                - winpr_DeleteFile
                - ArrayList_GetItem
                - strcmp
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:600,64'
              BranchSideFuncs:
                - GetNamedPipeNameWithoutPrefixA
                - NamedPipeCloseHandle
                - ArrayList_Unlock
                - close
                - GetNamedPipeUnixDomainSocketFilePathA
                - ArrayList_Count
                - dup
                - ArrayList_Unlock
                - WLog_Print_dbg_tag.2941
                - GetNamedPipeUnixDomainSocketBaseFilePathA
                - winpr_PathFileExists
                - CreateDirectoryA
                - free
                - UnixChangeFileMode
                - free
                - winpr_PathFileExists
                - socket
                - snprintf
                - bind
                - listen
                - UnixChangeFileMode
                - malloc
                - _strdup
                - free
                - ArrayList_Append
                - free
                - free
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
                - winpr_DeleteFile
                - ArrayList_GetItem
                - strcmp
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:600,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:601,3'
              BranchSideFuncs:
                - GetNamedPipeUnixDomainSocketFilePathA
                - NamedPipeCloseHandle
                - ArrayList_Unlock
                - close
                - ArrayList_Count
                - dup
                - ArrayList_Unlock
                - WLog_Print_dbg_tag.2941
                - GetNamedPipeUnixDomainSocketBaseFilePathA
                - winpr_PathFileExists
                - CreateDirectoryA
                - free
                - UnixChangeFileMode
                - free
                - winpr_PathFileExists
                - socket
                - snprintf
                - bind
                - listen
                - UnixChangeFileMode
                - malloc
                - _strdup
                - free
                - ArrayList_Append
                - free
                - free
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
                - winpr_DeleteFile
                - ArrayList_GetItem
                - strcmp
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:603,71'
              BranchSideFuncs:
                - GetNamedPipeUnixDomainSocketFilePathA
                - NamedPipeCloseHandle
                - ArrayList_Unlock
                - close
                - ArrayList_Count
                - dup
                - ArrayList_Unlock
                - WLog_Print_dbg_tag.2941
                - GetNamedPipeUnixDomainSocketBaseFilePathA
                - winpr_PathFileExists
                - CreateDirectoryA
                - free
                - UnixChangeFileMode
                - free
                - winpr_PathFileExists
                - socket
                - snprintf
                - bind
                - listen
                - UnixChangeFileMode
                - malloc
                - _strdup
                - free
                - ArrayList_Append
                - free
                - free
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
                - winpr_DeleteFile
                - ArrayList_GetItem
                - strcmp
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:603,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:604,3'
              BranchSideFuncs:
                - ArrayList_Count
                - dup
                - ArrayList_Unlock
                - WLog_Print_dbg_tag.2941
                - 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
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
                - winpr_DeleteFile
                - ArrayList_GetItem
                - strcmp
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:606,27'
              BranchSideFuncs:
                - ArrayList_Count
                - dup
                - ArrayList_Unlock
                - WLog_Print_dbg_tag.2941
                - 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
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
                - winpr_DeleteFile
                - ArrayList_GetItem
                - strcmp
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:617,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:620,54'
              BranchSideFuncs:
                - ArrayList_GetItem
                - strcmp
                - dup
                - ArrayList_Unlock
                - WLog_Print_dbg_tag.2941
                - 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
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
                - winpr_DeleteFile
                - ArrayList_Count
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:632,6'
              BranchSideFuncs:
                - dup
                - ArrayList_Unlock
                - WLog_Print_dbg_tag.2941
                - 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
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
                - winpr_DeleteFile
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:622,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:624,15'
              BranchSideFuncs:
                - ArrayList_Count
                - dup
                - ArrayList_Unlock
                - WLog_Print_dbg_tag.2941
                - 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
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
                - winpr_DeleteFile
                - ArrayList_GetItem
                - strcmp
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:629,2'
              BranchSideFuncs:
                - ArrayList_Count
                - dup
                - ArrayList_Unlock
                - WLog_Print_dbg_tag.2941
                - 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
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
                - winpr_DeleteFile
                - ArrayList_GetItem
                - strcmp
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:632,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:634,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_Print_dbg_tag.2941
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
                - winpr_DeleteFile
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:707,29'
              BranchSideFuncs:
                - dup
                - ArrayList_Unlock
                - WLog_Print_dbg_tag.2941
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:636,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:637,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_Print_dbg_tag.2941
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
                - winpr_DeleteFile
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:639,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_Print_dbg_tag.2941
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
                - winpr_DeleteFile
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:639,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:641,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_Print_dbg_tag.2941
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
                - winpr_DeleteFile
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:650,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_Print_dbg_tag.2941
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
                - winpr_DeleteFile
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:641,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:643,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_Print_dbg_tag.2941
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
                - winpr_DeleteFile
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:647,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_Print_dbg_tag.2941
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
                - winpr_DeleteFile
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:652,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:653,21'
              BranchSideFuncs:
                - winpr_DeleteFile
                - socket
                - snprintf
                - bind
                - listen
                - UnixChangeFileMode
                - malloc
                - NamedPipeCloseHandle
                - ArrayList_Unlock
                - close
                - _strdup
                - free
                - ArrayList_Append
                - free
                - free
                - dup
                - ArrayList_Unlock
                - WLog_Print_dbg_tag.2941
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:655,19'
              BranchSideFuncs:
                - socket
                - snprintf
                - bind
                - listen
                - UnixChangeFileMode
                - malloc
                - NamedPipeCloseHandle
                - ArrayList_Unlock
                - close
                - _strdup
                - free
                - ArrayList_Append
                - free
                - free
                - dup
                - ArrayList_Unlock
                - WLog_Print_dbg_tag.2941
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:655,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:657,9'
              BranchSideFuncs:
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
                - NamedPipeCloseHandle
                - ArrayList_Unlock
                - close
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:663,5'
              BranchSideFuncs:
                - snprintf
                - bind
                - listen
                - UnixChangeFileMode
                - malloc
                - NamedPipeCloseHandle
                - ArrayList_Unlock
                - close
                - _strdup
                - free
                - ArrayList_Append
                - free
                - free
                - dup
                - ArrayList_Unlock
                - WLog_Print_dbg_tag.2941
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:666,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:668,9'
              BranchSideFuncs:
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
                - NamedPipeCloseHandle
                - ArrayList_Unlock
                - close
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:674,14'
              BranchSideFuncs:
                - listen
                - UnixChangeFileMode
                - malloc
                - NamedPipeCloseHandle
                - ArrayList_Unlock
                - close
                - _strdup
                - free
                - ArrayList_Append
                - free
                - free
                - dup
                - ArrayList_Unlock
                - WLog_Print_dbg_tag.2941
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:674,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:676,9'
              BranchSideFuncs:
                - __errno_location
                - winpr_strerror
                - WLog_Print_dbg_tag.2941
                - NamedPipeCloseHandle
                - ArrayList_Unlock
                - close
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:682,22'
              BranchSideFuncs:
                - UnixChangeFileMode
                - malloc
                - NamedPipeCloseHandle
                - ArrayList_Unlock
                - close
                - _strdup
                - free
                - ArrayList_Append
                - free
                - free
                - dup
                - ArrayList_Unlock
                - WLog_Print_dbg_tag.2941
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:684,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:685,4'
              BranchSideFuncs:
                - _strdup
                - free
                - NamedPipeCloseHandle
                - ArrayList_Unlock
                - close
                - ArrayList_Append
                - free
                - free
                - dup
                - ArrayList_Unlock
                - WLog_Print_dbg_tag.2941
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:687,36'
              BranchSideFuncs:
                - _strdup
                - free
                - NamedPipeCloseHandle
                - ArrayList_Unlock
                - close
                - ArrayList_Append
                - free
                - free
                - dup
                - ArrayList_Unlock
                - WLog_Print_dbg_tag.2941
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:687,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:689,9'
              BranchSideFuncs:
                - ArrayList_Append
                - free
                - free
                - NamedPipeCloseHandle
                - ArrayList_Unlock
                - close
                - dup
                - ArrayList_Unlock
                - WLog_Print_dbg_tag.2941
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:693,26'
              BranchSideFuncs:
                - ArrayList_Append
                - free
                - free
                - NamedPipeCloseHandle
                - ArrayList_Unlock
                - close
                - dup
                - ArrayList_Unlock
                - WLog_Print_dbg_tag.2941
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:696,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:698,9'
              BranchSideFuncs:
                - dup
                - ArrayList_Unlock
                - WLog_Print_dbg_tag.2941
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:705,2'
              BranchSideFuncs:
                - dup
                - ArrayList_Unlock
                - WLog_Print_dbg_tag.2941
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:713,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:716,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2941
                - ArrayList_Unlock
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:720,19'
              BranchSideFuncs:
                - ArrayList_Unlock
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:725,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:726,9'
              BranchSideFuncs:
                - close
                - ArrayList_Unlock
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:728,19'
              BranchSideFuncs:
                - ArrayList_Unlock
      Callsites:
        - Src:             'winpr/libwinpr/pipe/pipe.c:576,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/pipe/pipe.c:577,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/pipe/pipe.c:584,7'
          Dst:             InitWinPRPipeModule
        - Src:             'winpr/libwinpr/pipe/pipe.c:587,34'
          Dst:             calloc
        - Src:             'winpr/libwinpr/pipe/pipe.c:592,2'
          Dst:             ArrayList_Lock
        - Src:             'winpr/libwinpr/pipe/pipe.c:593,2'
          Dst:             WINPR_HANDLE_SET_TYPE_AND_MODE
        - Src:             'winpr/libwinpr/pipe/pipe.c:597,27'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/pipe/pipe.c:600,33'
          Dst:             GetNamedPipeNameWithoutPrefixA
        - Src:             'winpr/libwinpr/pipe/pipe.c:603,33'
          Dst:             GetNamedPipeUnixDomainSocketFilePathA
        - Src:             'winpr/libwinpr/pipe/pipe.c:617,33'
          Dst:             ArrayList_Count
        - Src:             'winpr/libwinpr/pipe/pipe.c:620,36'
          Dst:             ArrayList_GetItem
        - Src:             'winpr/libwinpr/pipe/pipe.c:622,8'
          Dst:             strcmp
        - Src:             'winpr/libwinpr/pipe/pipe.c:636,22'
          Dst:             GetNamedPipeUnixDomainSocketBaseFilePathA
        - Src:             'winpr/libwinpr/pipe/pipe.c:639,8'
          Dst:             winpr_PathFileExists
        - Src:             'winpr/libwinpr/pipe/pipe.c:641,9'
          Dst:             CreateDirectoryA
        - Src:             'winpr/libwinpr/pipe/pipe.c:647,4'
          Dst:             UnixChangeFileMode
        - Src:             'winpr/libwinpr/pipe/pipe.c:652,7'
          Dst:             winpr_PathFileExists
        - Src:             'winpr/libwinpr/pipe/pipe.c:653,4'
          Dst:             winpr_DeleteFile
        - Src:             'winpr/libwinpr/pipe/pipe.c:655,19'
          Dst:             socket
        - Src:             'winpr/libwinpr/pipe/pipe.c:658,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/pipe/pipe.c:658,4'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/pipe/pipe.c:658,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/pipe/pipe.c:664,9'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/pipe/pipe.c:666,7'
          Dst:             bind
        - 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_Print_dbg_tag
        - Src:             'winpr/libwinpr/pipe/pipe.c:674,7'
          Dst:             listen
        - Src:             'winpr/libwinpr/pipe/pipe.c:677,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/pipe/pipe.c:677,4'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/pipe/pipe.c:677,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/pipe/pipe.c:682,3'
          Dst:             UnixChangeFileMode
        - Src:             'winpr/libwinpr/pipe/pipe.c:687,28'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/pipe/pipe.c:696,8'
          Dst:             ArrayList_Append
        - Src:             'winpr/libwinpr/pipe/pipe.c:707,25'
          Dst:             dup
        - Src:             'winpr/libwinpr/pipe/pipe.c:716,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/pipe/pipe.c:720,2'
          Dst:             ArrayList_Unlock
        - Src:             'winpr/libwinpr/pipe/pipe.c:723,2'
          Dst:             NamedPipeCloseHandle
        - Src:             'winpr/libwinpr/pipe/pipe.c:726,3'
          Dst:             close
        - Src:             'winpr/libwinpr/pipe/pipe.c:728,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: 252
      functionLinenumberEnd: 341
      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:          197
      EdgeCount:       43
      CyclomaticComplexity: 11
      functionsReached:
        - SetEvent
        - SetLastError
        - WLog_Print_dbg_tag
        - __errno_location
        - read
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:257,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:259,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2941
                - SetLastError
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:264,28'
              BranchSideFuncs:
                - read
                - __errno_location
                - SetLastError
                - SetLastError
                - SetLastError
                - __errno_location
                - SetEvent
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:266,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:268,7'
              BranchSideFuncs:
                - SetEvent
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:303,8'
              BranchSideFuncs:
                - SetEvent
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:268,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:269,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:271,3'
              BranchSideFuncs:
                - read
                - __errno_location
                - SetLastError
                - SetLastError
                - SetLastError
                - __errno_location
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:274,28'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:274,32'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - SetLastError
                - SetLastError
                - SetLastError
                - read
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:274,3'
              BranchSideFuncs:
                - __errno_location
                - SetLastError
                - SetLastError
                - SetLastError
                - read
                - __errno_location
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:274,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:273,21'
              BranchSideFuncs:
                - read
                - __errno_location
                - SetLastError
                - SetLastError
                - SetLastError
                - __errno_location
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:276,7'
              BranchSideFuncs:
                - __errno_location
                - SetLastError
                - SetLastError
                - SetLastError
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:276,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:278,4'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:281,12'
              BranchSideFuncs:
                - __errno_location
                - SetLastError
                - SetLastError
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:285,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:288,6'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:292,6'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:297,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:298,34'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:299,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:303,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:304,4'
              BranchSideFuncs:
                - SetEvent
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:306,7'
              BranchSideFuncs:
                - SetEvent
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:306,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:307,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:309,24'
              BranchSideFuncs:
                - SetEvent
      Callsites:
        - Src:             'winpr/libwinpr/pipe/pipe.c:259,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/pipe/pipe.c:260,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/pipe/pipe.c:273,16'
          Dst:             read
        - Src:             'winpr/libwinpr/pipe/pipe.c:274,32'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/pipe/pipe.c:278,4'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/pipe/pipe.c:285,12'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/pipe/pipe.c:288,6'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/pipe/pipe.c:292,6'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/pipe/pipe.c:336,9'
          Dst:             SetEvent
    - functionName:    NamedPipeWrite
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 345
      functionLinenumberEnd: 436
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - Object
        - lpBuffer
        - nNumberOfBytesToWrite
        - lpNumberOfBytesWritten
        - lpOverlapped
      BBCount:         28
      ICount:          182
      EdgeCount:       35
      CyclomaticComplexity: 9
      functionsReached:
        - SetEvent
        - SetLastError
        - WLog_Print_dbg_tag
        - __errno_location
        - write
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:350,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:352,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2941
                - SetLastError
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:357,28'
              BranchSideFuncs:
                - write
                - __errno_location
                - __errno_location
                - SetEvent
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:359,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:361,7'
              BranchSideFuncs:
                - SetEvent
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:391,8'
              BranchSideFuncs:
                - SetEvent
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:361,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:362,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:364,3'
              BranchSideFuncs:
                - write
                - __errno_location
                - __errno_location
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:367,28'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:367,32'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - write
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:367,3'
              BranchSideFuncs:
                - __errno_location
                - write
                - __errno_location
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:367,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:366,22'
              BranchSideFuncs:
                - write
                - __errno_location
                - __errno_location
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:369,7'
              BranchSideFuncs:
                - __errno_location
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:369,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:371,5'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:385,36'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:373,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:376,16'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:381,13'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:391,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:392,4'
              BranchSideFuncs:
                - SetEvent
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:394,7'
              BranchSideFuncs:
                - SetEvent
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:394,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:395,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:397,24'
              BranchSideFuncs:
                - SetEvent
      Callsites:
        - Src:             'winpr/libwinpr/pipe/pipe.c:352,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/pipe/pipe.c:353,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/pipe/pipe.c:366,16'
          Dst:             write
        - Src:             'winpr/libwinpr/pipe/pipe.c:367,32'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/pipe/pipe.c:373,12'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/pipe/pipe.c:431,9'
          Dst:             SetEvent
    - functionName:    CreatePipe
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 475
      functionLinenumberEnd: 517
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - hReadPipe
        - hWritePipe
        - lpPipeAttributes
        - nSize
      BBCount:         23
      ICount:          167
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - WINPR_HANDLE_SET_TYPE_AND_MODE
        - WLog_Print_dbg_tag
        - calloc
        - close
        - pipe
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:483,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:485,7'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2941
                - close
                - close
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:494,27'
              BranchSideFuncs:
                - calloc
                - calloc
                - free
                - free
                - close
                - close
                - WINPR_HANDLE_SET_TYPE_AND_MODE.2952
                - WINPR_HANDLE_SET_TYPE_AND_MODE.2952
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:485,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:486,10'
              BranchSideFuncs:
                - close
                - WLog_Print_dbg_tag.2941
                - close
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:487,7'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2941
                - close
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:487,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:488,10'
              BranchSideFuncs:
                - close
                - WLog_Print_dbg_tag.2941
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:490,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.2941
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:497,17'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:497,21'
              BranchSideFuncs:
                - free
                - free
                - close
                - close
                - WINPR_HANDLE_SET_TYPE_AND_MODE.2952
                - WINPR_HANDLE_SET_TYPE_AND_MODE.2952
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:499,7'
              BranchSideFuncs:
                - free
                - free
                - close
                - close
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:497,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:499,7'
              BranchSideFuncs:
                - WINPR_HANDLE_SET_TYPE_AND_MODE.2952
                - WINPR_HANDLE_SET_TYPE_AND_MODE.2952
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:508,18'
              BranchSideFuncs:
                - WINPR_HANDLE_SET_TYPE_AND_MODE.2952
                - WINPR_HANDLE_SET_TYPE_AND_MODE.2952
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:499,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:500,10'
              BranchSideFuncs:
                - close
                - free
                - free
                - close
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:501,7'
              BranchSideFuncs:
                - free
                - free
                - close
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:501,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:502,10'
              BranchSideFuncs:
                - close
                - free
                - free
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:503,8'
              BranchSideFuncs:
                - free
                - free
      Callsites:
        - Src:             'winpr/libwinpr/pipe/pipe.c:483,6'
          Dst:             pipe
        - Src:             'winpr/libwinpr/pipe/pipe.c:486,4'
          Dst:             close
        - Src:             'winpr/libwinpr/pipe/pipe.c:488,4'
          Dst:             close
        - Src:             'winpr/libwinpr/pipe/pipe.c:490,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/pipe/pipe.c:494,27'
          Dst:             calloc
        - Src:             'winpr/libwinpr/pipe/pipe.c:495,28'
          Dst:             calloc
        - Src:             'winpr/libwinpr/pipe/pipe.c:500,4'
          Dst:             close
        - Src:             'winpr/libwinpr/pipe/pipe.c:502,4'
          Dst:             close
        - Src:             'winpr/libwinpr/pipe/pipe.c:510,2'
          Dst:             WINPR_HANDLE_SET_TYPE_AND_MODE
        - Src:             'winpr/libwinpr/pipe/pipe.c:513,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: 530
      functionLinenumberEnd: 537
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ListHead
      BBCount:         12
      ICount:          50
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/interlocked/interlocked.c:531,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:531,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:531,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/interlocked/interlocked.c:534,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:534,6'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:535,20'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:531,2'
          Dst:             winpr_int_assert
    - functionName:    PushEntryList
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/interlocked/interlocked.c'
      linkageType:     InternalLinkage
      functionLinenumber: 521
      functionLinenumberEnd: 527
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ListHead
        - Entry
      BBCount:         15
      ICount:          54
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/interlocked/interlocked.c:522,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:522,2'
              BranchSideFuncs:
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:522,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/interlocked/interlocked.c:523,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:523,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:523,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:522,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:523,2'
          Dst:             winpr_int_assert
    - functionName:    AppendTailList
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/interlocked/interlocked.c'
      linkageType:     InternalLinkage
      functionLinenumber: 508
      functionLinenumberEnd: 518
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ListHead
        - ListToAppend
      BBCount:         15
      ICount:          72
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/interlocked/interlocked.c:509,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:509,2'
              BranchSideFuncs:
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:509,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/interlocked/interlocked.c:510,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:510,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:510,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:509,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:510,2'
          Dst:             winpr_int_assert
    - functionName:    RemoveTailList
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/interlocked/interlocked.c'
      linkageType:     InternalLinkage
      functionLinenumber: 492
      functionLinenumberEnd: 504
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ListHead
      BBCount:         21
      ICount:          74
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/interlocked/interlocked.c:493,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:493,2'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:493,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/interlocked/interlocked.c:496,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:496,2'
              BranchSideFuncs:
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:496,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/interlocked/interlocked.c:499,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:499,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:499,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:493,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:496,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:499,2'
          Dst:             winpr_int_assert
    - functionName:    InsertTailList
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/interlocked/interlocked.c'
      linkageType:     InternalLinkage
      functionLinenumber: 478
      functionLinenumberEnd: 489
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ListHead
        - Entry
      BBCount:         21
      ICount:          78
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/interlocked/interlocked.c:479,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:479,2'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:479,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/interlocked/interlocked.c:480,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:480,2'
              BranchSideFuncs:
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:480,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/interlocked/interlocked.c:483,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:483,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:483,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:479,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:480,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:483,2'
          Dst:             winpr_int_assert
    - functionName:    RemoveHeadList
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/interlocked/interlocked.c'
      linkageType:     InternalLinkage
      functionLinenumber: 462
      functionLinenumberEnd: 474
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ListHead
      BBCount:         21
      ICount:          74
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/interlocked/interlocked.c:463,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:463,2'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:463,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/interlocked/interlocked.c:466,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:466,2'
              BranchSideFuncs:
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:466,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/interlocked/interlocked.c:469,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:469,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:469,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:463,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:466,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:469,2'
          Dst:             winpr_int_assert
    - functionName:    InsertHeadList
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/interlocked/interlocked.c'
      linkageType:     InternalLinkage
      functionLinenumber: 448
      functionLinenumberEnd: 459
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ListHead
        - Entry
      BBCount:         21
      ICount:          78
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/interlocked/interlocked.c:449,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:449,2'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:449,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/interlocked/interlocked.c:450,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:450,2'
              BranchSideFuncs:
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:450,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/interlocked/interlocked.c:453,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:453,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:453,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:449,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:450,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:453,2'
          Dst:             winpr_int_assert
    - functionName:    RemoveEntryList
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/interlocked/interlocked.c'
      linkageType:     InternalLinkage
      functionLinenumber: 433
      functionLinenumberEnd: 444
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - Entry
      BBCount:         21
      ICount:          77
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/interlocked/interlocked.c:434,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:434,2'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:434,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/interlocked/interlocked.c:436,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:436,2'
              BranchSideFuncs:
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:436,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/interlocked/interlocked.c:439,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:439,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:439,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:434,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:436,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:439,2'
          Dst:             winpr_int_assert
    - functionName:    IsListEmpty
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/interlocked/interlocked.c'
      linkageType:     InternalLinkage
      functionLinenumber: 427
      functionLinenumberEnd: 429
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ListHead
      BBCount:         9
      ICount:          35
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/interlocked/interlocked.c:428,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:428,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:428,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:428,2'
          Dst:             winpr_int_assert
    - functionName:    InitializeListHead
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/interlocked/interlocked.c'
      linkageType:     InternalLinkage
      functionLinenumber: 421
      functionLinenumberEnd: 424
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ListHead
      BBCount:         9
      ICount:          36
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/interlocked/interlocked.c:422,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:422,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:422,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:422,2'
          Dst:             winpr_int_assert
    - functionName:    InterlockedCompareExchangePointer
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/interlocked/interlocked.c'
      linkageType:     InternalLinkage
      functionLinenumber: 308
      functionLinenumberEnd: 314
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - Destination
        - Exchange
        - Comperand
      BBCount:         9
      ICount:          43
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/interlocked/interlocked.c:309,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:309,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:309,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:309,2'
          Dst:             winpr_int_assert
    - functionName:    InterlockedCompareExchange
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/interlocked/interlocked.c'
      linkageType:     InternalLinkage
      functionLinenumber: 293
      functionLinenumberEnd: 299
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - Destination
        - Exchange
        - Comperand
      BBCount:         9
      ICount:          40
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/interlocked/interlocked.c:294,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:294,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:294,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:294,2'
          Dst:             winpr_int_assert
    - functionName:    InterlockedExchangeAdd
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/interlocked/interlocked.c'
      linkageType:     InternalLinkage
      functionLinenumber: 279
      functionLinenumberEnd: 285
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - Addend
        - Value
      BBCount:         9
      ICount:          35
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/interlocked/interlocked.c:280,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:280,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:280,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:280,2'
          Dst:             winpr_int_assert
    - functionName:    InterlockedExchange
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/interlocked/interlocked.c'
      linkageType:     InternalLinkage
      functionLinenumber: 265
      functionLinenumberEnd: 271
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - Target
        - Value
      BBCount:         9
      ICount:          38
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/interlocked/interlocked.c:266,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:266,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:266,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:266,2'
          Dst:             winpr_int_assert
    - functionName:    InterlockedDecrement
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/interlocked/interlocked.c'
      linkageType:     InternalLinkage
      functionLinenumber: 251
      functionLinenumberEnd: 257
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - Addend
      BBCount:         9
      ICount:          32
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/interlocked/interlocked.c:252,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:252,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:252,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:252,2'
          Dst:             winpr_int_assert
    - functionName:    InterlockedIncrement
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/interlocked/interlocked.c'
      linkageType:     InternalLinkage
      functionLinenumber: 237
      functionLinenumberEnd: 243
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - Addend
      BBCount:         9
      ICount:          32
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/interlocked/interlocked.c:238,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:238,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:238,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:238,2'
          Dst:             winpr_int_assert
    - functionName:    QueryDepthSList
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/interlocked/interlocked.c'
      linkageType:     InternalLinkage
      functionLinenumber: 226
      functionLinenumberEnd: 232
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ListHead
      BBCount:         9
      ICount:          32
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/interlocked/interlocked.c:227,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:227,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:227,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:227,2'
          Dst:             winpr_int_assert
    - functionName:    InterlockedFlushSList
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/interlocked/interlocked.c'
      linkageType:     InternalLinkage
      functionLinenumber: 176
      functionLinenumberEnd: 223
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ListHead
      BBCount:         22
      ICount:          103
      EdgeCount:       27
      CyclomaticComplexity: 7
      functionsReached:
        - InterlockedCompareExchange64
        - QueryDepthSList
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/interlocked/interlocked.c:180,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:180,2'
              BranchSideFuncs:
                - QueryDepthSList
                - InterlockedCompareExchange64
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:180,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/interlocked/interlocked.c:181,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:182,3'
              BranchSideFuncs:
                - InterlockedCompareExchange64
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:204,22'
              BranchSideFuncs:
                - InterlockedCompareExchange64
        - Branch String:   'winpr/libwinpr/interlocked/interlocked.c:211,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:212,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:213,17'
              BranchSideFuncs:
                - InterlockedCompareExchange64
        - Branch String:   'winpr/libwinpr/interlocked/interlocked.c:213,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:214,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:215,7'
              BranchSideFuncs:
                - InterlockedCompareExchange64
        - Branch String:   'winpr/libwinpr/interlocked/interlocked.c:215,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:216,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:217,2'
              BranchSideFuncs:
                - InterlockedCompareExchange64
        - Branch String:   'winpr/libwinpr/interlocked/interlocked.c:217,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:208,10'
              BranchSideFuncs:
                - InterlockedCompareExchange64
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:221,15'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:180,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:181,7'
          Dst:             QueryDepthSList
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:217,11'
          Dst:             InterlockedCompareExchange64
    - functionName:    InterlockedCompareExchange64
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/interlocked/interlocked.c'
      linkageType:     InternalLinkage
      functionLinenumber: 395
      functionLinenumberEnd: 401
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - Destination
        - Exchange
        - Comperand
      BBCount:         9
      ICount:          40
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/interlocked/interlocked.c:396,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:396,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:396,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:396,2'
          Dst:             winpr_int_assert
    - functionName:    InterlockedPopEntrySList
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/interlocked/interlocked.c'
      linkageType:     InternalLinkage
      functionLinenumber: 120
      functionLinenumberEnd: 173
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ListHead
      BBCount:         22
      ICount:          118
      EdgeCount:       27
      CyclomaticComplexity: 7
      functionsReached:
        - InterlockedCompareExchange64
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/interlocked/interlocked.c:125,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:125,2'
              BranchSideFuncs:
                - InterlockedCompareExchange64
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:125,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/interlocked/interlocked.c:155,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:156,4'
              BranchSideFuncs:
                - InterlockedCompareExchange64
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:158,27'
              BranchSideFuncs:
                - InterlockedCompareExchange64
        - Branch String:   'winpr/libwinpr/interlocked/interlocked.c:162,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:163,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:164,17'
              BranchSideFuncs:
                - InterlockedCompareExchange64
        - Branch String:   'winpr/libwinpr/interlocked/interlocked.c:164,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:165,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:166,7'
              BranchSideFuncs:
                - InterlockedCompareExchange64
        - Branch String:   'winpr/libwinpr/interlocked/interlocked.c:166,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:167,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:168,2'
              BranchSideFuncs:
                - InterlockedCompareExchange64
        - Branch String:   'winpr/libwinpr/interlocked/interlocked.c:168,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:151,10'
              BranchSideFuncs:
                - InterlockedCompareExchange64
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:172,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:125,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:168,11'
          Dst:             InterlockedCompareExchange64
    - functionName:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 216
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - tag
        - log_level
        - line
        - file
        - fkt
      BBCount:         9
      ICount:          67
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintMessageVA
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/wlog.h:206,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/wlog.h:207,30'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessageVA
            - BranchSide:      'winpr/include/winpr/wlog.h:209,26'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessageVA
        - Branch String:   'winpr/include/winpr/wlog.h:209,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/wlog.h:209,7'
              BranchSideFuncs:
                - WLog_PrintMessageVA
            - BranchSide:      'winpr/include/winpr/wlog.h:212,4'
              BranchSideFuncs:
                - WLog_PrintMessageVA
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:207,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:209,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:213,4'
          Dst:             WLog_PrintMessageVA
    - functionName:    InterlockedPushListSListEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/interlocked/interlocked.c'
      linkageType:     InternalLinkage
      functionLinenumber: 105
      functionLinenumberEnd: 116
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ListHead
        - List
        - ListEnd
        - Count
      BBCount:         21
      ICount:          63
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/interlocked/interlocked.c:106,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:106,2'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - WLog_Print_dbg_tag.3036
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:106,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/interlocked/interlocked.c:107,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:107,2'
              BranchSideFuncs:
                - winpr_int_assert
                - WLog_Print_dbg_tag.3036
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:107,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/interlocked/interlocked.c:108,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:108,2'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.3036
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:108,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:106,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:107,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:108,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:110,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    InterlockedPushEntrySList
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/interlocked/interlocked.c'
      linkageType:     InternalLinkage
      functionLinenumber: 51
      functionLinenumberEnd: 99
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ListHead
        - ListEntry
      BBCount:         26
      ICount:          124
      EdgeCount:       30
      CyclomaticComplexity: 6
      functionsReached:
        - InterlockedCompareExchange64
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/interlocked/interlocked.c:55,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:55,2'
              BranchSideFuncs:
                - winpr_int_assert
                - InterlockedCompareExchange64
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:55,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/interlocked/interlocked.c:56,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:56,2'
              BranchSideFuncs:
                - InterlockedCompareExchange64
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:56,2'
              BranchSideFuncs:
                - winpr_int_assert
        - 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,17'
              BranchSideFuncs:
                - InterlockedCompareExchange64
        - Branch String:   'winpr/libwinpr/interlocked/interlocked.c:89,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:90,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:91,7'
              BranchSideFuncs:
                - InterlockedCompareExchange64
        - Branch String:   'winpr/libwinpr/interlocked/interlocked.c:91,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:92,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:93,2'
              BranchSideFuncs:
                - InterlockedCompareExchange64
        - Branch String:   'winpr/libwinpr/interlocked/interlocked.c:93,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:83,10'
              BranchSideFuncs:
                - InterlockedCompareExchange64
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:97,15'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:55,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:56,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:93,11'
          Dst:             InterlockedCompareExchange64
    - functionName:    InitializeSListHead
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/interlocked/interlocked.c'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 47
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ListHead
      BBCount:         9
      ICount:          31
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/interlocked/interlocked.c:39,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:39,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:39,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:39,2'
          Dst:             winpr_int_assert
    - functionName:    GetEnvironmentVariableX
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/environment/environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 749
      functionLinenumberEnd: 750
      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:750,9'
          Dst:             GetEnvironmentVariableA
    - functionName:    GetEnvironmentVariableA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/environment/environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 164
      functionLinenumberEnd: 190
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - lpName
        - lpBuffer
        - nSize
      BBCount:         11
      ICount:          80
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - SetLastError
        - getenv
        - strlen
      functionUses:    17
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/environment/environment.c:171,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:173,3'
              BranchSideFuncs:
                - strlen
            - BranchSide:      'winpr/libwinpr/environment/environment.c:177,18'
              BranchSideFuncs:
                - strlen
        - Branch String:   'winpr/libwinpr/environment/environment.c:179,27'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:179,32'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/environment/environment.c:180,17'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/environment/environment.c:179,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:180,17'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/environment/environment.c:182,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/environment/environment.c:169,14'
          Dst:             getenv
        - Src:             'winpr/libwinpr/environment/environment.c:173,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/environment/environment.c:177,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: 637
      functionLinenumberEnd: 683
      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:645,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:646,3'
              BranchSideFuncs:
                - calloc
                - strlen
                - _strdup
                - free
                - free
                - strlen
            - BranchSide:      'winpr/libwinpr/environment/environment.c:648,13'
              BranchSideFuncs:
                - calloc
                - strlen
                - _strdup
                - free
                - free
                - strlen
        - Branch String:   'winpr/libwinpr/environment/environment.c:650,14'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:650,17'
              BranchSideFuncs:
                - calloc
                - strlen
                - _strdup
                - free
                - free
                - strlen
            - BranchSide:      'winpr/libwinpr/environment/environment.c:650,2'
              BranchSideFuncs:
                - calloc
                - strlen
                - _strdup
                - free
                - free
                - strlen
        - Branch String:   'winpr/libwinpr/environment/environment.c:650,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:652,19'
              BranchSideFuncs:
                - strlen
                - calloc
                - strlen
                - _strdup
                - free
                - free
            - BranchSide:      'winpr/libwinpr/environment/environment.c:657,8'
              BranchSideFuncs:
                - calloc
                - strlen
                - _strdup
                - free
                - free
        - Branch String:   'winpr/libwinpr/environment/environment.c:661,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:662,3'
              BranchSideFuncs:
                - strlen
                - _strdup
                - free
                - free
            - BranchSide:      'winpr/libwinpr/environment/environment.c:663,2'
              BranchSideFuncs:
                - strlen
                - _strdup
                - free
                - free
        - Branch String:   'winpr/libwinpr/environment/environment.c:665,14'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:665,17'
              BranchSideFuncs:
                - strlen
                - _strdup
                - free
                - free
            - BranchSide:      'winpr/libwinpr/environment/environment.c:665,2'
              BranchSideFuncs:
                - strlen
                - _strdup
                - free
                - free
        - Branch String:   'winpr/libwinpr/environment/environment.c:665,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:667,19'
              BranchSideFuncs:
                - strlen
                - _strdup
                - free
                - free
            - BranchSide:      'winpr/libwinpr/environment/environment.c:682,9'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/environment/environment.c:669,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:671,15'
              BranchSideFuncs:
                - strlen
                - _strdup
                - free
                - free
            - BranchSide:      'winpr/libwinpr/environment/environment.c:678,9'
              BranchSideFuncs:
                - strlen
                - _strdup
                - free
                - free
        - Branch String:   'winpr/libwinpr/environment/environment.c:671,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:673,10'
              BranchSideFuncs:
                - free
                - free
            - BranchSide:      'winpr/libwinpr/environment/environment.c:675,16'
              BranchSideFuncs:
                - free
      Callsites:
        - Src:             'winpr/libwinpr/environment/environment.c:652,12'
          Dst:             strlen
        - Src:             'winpr/libwinpr/environment/environment.c:660,17'
          Dst:             calloc
        - Src:             'winpr/libwinpr/environment/environment.c:667,12'
          Dst:             strlen
        - Src:             'winpr/libwinpr/environment/environment.c:668,17'
          Dst:             _strdup
    - functionName:    SetEnvironmentVariableEBA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/environment/environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 595
      functionLinenumberEnd: 634
      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:600,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:601,3'
              BranchSideFuncs:
                - strlen
                - malloc
                - snprintf
                - MergeEnvironmentStrings
                - free
                - free
                - strlen
                - strlen
                - malloc
                - snprintf
            - BranchSide:      'winpr/libwinpr/environment/environment.c:603,6'
              BranchSideFuncs:
                - strlen
                - malloc
                - snprintf
                - MergeEnvironmentStrings
                - free
                - free
                - strlen
                - strlen
                - malloc
                - snprintf
        - Branch String:   'winpr/libwinpr/environment/environment.c:603,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:605,20'
              BranchSideFuncs:
                - strlen
                - strlen
                - malloc
                - snprintf
                - MergeEnvironmentStrings
                - free
                - free
            - BranchSide:      'winpr/libwinpr/environment/environment.c:615,19'
              BranchSideFuncs:
                - strlen
                - malloc
                - snprintf
                - MergeEnvironmentStrings
                - free
                - free
        - Branch String:   'winpr/libwinpr/environment/environment.c:608,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:609,4'
              BranchSideFuncs:
                - snprintf
                - MergeEnvironmentStrings
                - free
                - free
            - BranchSide:      'winpr/libwinpr/environment/environment.c:611,19'
              BranchSideFuncs:
                - snprintf
                - MergeEnvironmentStrings
                - free
                - free
        - Branch String:   'winpr/libwinpr/environment/environment.c:618,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:619,4'
              BranchSideFuncs:
                - snprintf
                - MergeEnvironmentStrings
                - free
                - free
            - BranchSide:      'winpr/libwinpr/environment/environment.c:621,19'
              BranchSideFuncs:
                - snprintf
                - MergeEnvironmentStrings
                - free
                - free
      Callsites:
        - Src:             'winpr/libwinpr/environment/environment.c:605,13'
          Dst:             strlen
        - Src:             'winpr/libwinpr/environment/environment.c:605,30'
          Dst:             strlen
        - Src:             'winpr/libwinpr/environment/environment.c:611,9'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/environment/environment.c:615,12'
          Dst:             strlen
        - Src:             'winpr/libwinpr/environment/environment.c:621,9'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/environment/environment.c:626,10'
          Dst:             MergeEnvironmentStrings
    - functionName:    MergeEnvironmentStrings
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/environment/environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 354
      functionLinenumberEnd: 531
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - original
        - merge
      BBCount:         87
      ICount:          602
      EdgeCount:       113
      CyclomaticComplexity: 28
      functionsReached:
        - calloc
        - realloc
        - strlen
        - strncmp
        - strstr
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/environment/environment.c:371,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:372,3'
              BranchSideFuncs:
                - calloc
                - free
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - strlen
                - strstr
                - winpr_int_assert
                - winpr_int_assert
                - strncmp
                - realloc
                - free
                - free
                - realloc
                - free
                - free
                - strlen
                - realloc
                - free
            - BranchSide:      'winpr/libwinpr/environment/environment.c:374,20'
              BranchSideFuncs:
                - calloc
                - free
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - strlen
                - strstr
                - winpr_int_assert
                - winpr_int_assert
                - strncmp
                - realloc
                - free
                - free
                - realloc
                - free
                - free
                - strlen
                - realloc
                - free
        - Branch String:   'winpr/libwinpr/environment/environment.c:378,13'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:378,18'
              BranchSideFuncs:
                - calloc
                - free
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - strlen
                - strstr
                - winpr_int_assert
                - winpr_int_assert
                - strncmp
                - realloc
                - free
                - free
                - realloc
                - free
                - free
                - strlen
                - realloc
                - free
            - BranchSide:      'winpr/libwinpr/environment/environment.c:378,2'
              BranchSideFuncs:
                - calloc
                - free
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - strlen
                - strstr
                - winpr_int_assert
                - winpr_int_assert
                - strncmp
                - realloc
                - free
                - free
                - realloc
                - free
                - free
                - strlen
                - realloc
                - free
        - Branch String:   'winpr/libwinpr/environment/environment.c:378,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:380,19'
              BranchSideFuncs:
                - strlen
                - calloc
                - free
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - strlen
                - strstr
                - winpr_int_assert
                - winpr_int_assert
                - strncmp
                - realloc
                - free
                - free
                - realloc
                - free
                - free
                - realloc
                - free
            - BranchSide:      'winpr/libwinpr/environment/environment.c:402,9'
              BranchSideFuncs:
                - calloc
                - free
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - strlen
                - strstr
                - winpr_int_assert
                - winpr_int_assert
                - strncmp
                - realloc
                - free
                - free
                - realloc
                - free
                - free
        - Branch String:   'winpr/libwinpr/environment/environment.c:382,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:384,17'
              BranchSideFuncs:
                - realloc
                - free
                - calloc
                - free
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - strlen
                - strstr
                - winpr_int_assert
                - winpr_int_assert
                - strncmp
                - realloc
                - free
                - free
                - realloc
                - free
                - free
                - strlen
            - BranchSide:      'winpr/libwinpr/environment/environment.c:397,37'
              BranchSideFuncs:
                - calloc
                - free
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - strlen
                - strstr
                - winpr_int_assert
                - winpr_int_assert
                - strncmp
                - realloc
                - free
                - free
                - realloc
                - free
                - free
                - strlen
                - realloc
                - free
        - Branch String:   'winpr/libwinpr/environment/environment.c:389,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:391,17'
              BranchSideFuncs:
                - calloc
                - free
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - strlen
                - strstr
                - winpr_int_assert
                - winpr_int_assert
                - strncmp
                - realloc
                - free
                - free
                - realloc
                - free
                - free
                - strlen
                - realloc
                - free
            - BranchSide:      'winpr/libwinpr/environment/environment.c:394,19'
              BranchSideFuncs:
                - calloc
                - free
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - strlen
                - strstr
                - winpr_int_assert
                - winpr_int_assert
                - strncmp
                - realloc
                - free
                - free
                - realloc
                - free
                - free
                - strlen
                - realloc
                - free
        - Branch String:   'winpr/libwinpr/environment/environment.c:407,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:409,15'
              BranchSideFuncs:
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - strlen
                - strstr
                - winpr_int_assert
                - winpr_int_assert
                - strncmp
                - realloc
                - free
                - free
                - realloc
                - free
                - free
            - BranchSide:      'winpr/libwinpr/environment/environment.c:413,9'
              BranchSideFuncs:
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - strlen
                - strstr
                - winpr_int_assert
                - winpr_int_assert
                - strncmp
                - realloc
                - free
                - free
                - realloc
                - free
                - free
        - Branch String:   'winpr/libwinpr/environment/environment.c:415,28'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:415,33'
              BranchSideFuncs:
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - strlen
                - strstr
                - winpr_int_assert
                - winpr_int_assert
                - strncmp
                - realloc
                - free
                - free
                - realloc
                - free
                - free
            - BranchSide:      'winpr/libwinpr/environment/environment.c:415,2'
              BranchSideFuncs:
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - strlen
                - strstr
                - winpr_int_assert
                - winpr_int_assert
                - strncmp
                - realloc
                - free
                - free
                - realloc
                - free
                - free
        - Branch String:   'winpr/libwinpr/environment/environment.c:415,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:417,23'
              BranchSideFuncs:
                - strlen
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - strstr
                - winpr_int_assert
                - winpr_int_assert
                - strncmp
                - realloc
                - free
                - free
                - realloc
                - free
                - free
            - BranchSide:      'winpr/libwinpr/environment/environment.c:496,14'
              BranchSideFuncs:
                - free
                - strlen
                - realloc
                - free
                - free
        - Branch String:   'winpr/libwinpr/environment/environment.c:420,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:422,24'
              BranchSideFuncs:
                - realloc
                - free
                - free
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - strlen
                - strstr
                - winpr_int_assert
                - winpr_int_assert
                - strncmp
                - realloc
                - free
                - free
            - BranchSide:      'winpr/libwinpr/environment/environment.c:434,9'
              BranchSideFuncs:
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - strstr
                - winpr_int_assert
                - winpr_int_assert
                - strncmp
                - realloc
                - free
                - free
        - Branch String:   'winpr/libwinpr/environment/environment.c:425,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:427,17'
              BranchSideFuncs:
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - strlen
                - strstr
                - winpr_int_assert
                - winpr_int_assert
                - strncmp
                - realloc
                - free
                - free
                - realloc
                - free
                - free
            - BranchSide:      'winpr/libwinpr/environment/environment.c:431,27'
              BranchSideFuncs:
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - strlen
                - strstr
                - winpr_int_assert
                - winpr_int_assert
                - strncmp
                - realloc
                - free
                - free
                - realloc
                - free
                - free
        - Branch String:   'winpr/libwinpr/environment/environment.c:438,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:440,9'
              BranchSideFuncs:
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - strstr
                - winpr_int_assert
                - winpr_int_assert
                - strncmp
                - realloc
                - free
                - free
            - BranchSide:      'winpr/libwinpr/environment/environment.c:485,7'
              BranchSideFuncs:
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - strlen
                - strstr
                - winpr_int_assert
                - winpr_int_assert
                - strncmp
                - realloc
                - free
                - free
                - realloc
                - free
                - free
        - Branch String:   'winpr/libwinpr/environment/environment.c:440,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:441,5'
              BranchSideFuncs:
                - strlen
                - strstr
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - realloc
                - free
                - free
                - winpr_int_assert
                - winpr_int_assert
                - strncmp
                - realloc
                - free
                - free
            - BranchSide:      'winpr/libwinpr/environment/environment.c:443,25'
              BranchSideFuncs:
                - strlen
                - strstr
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - realloc
                - free
                - free
                - winpr_int_assert
                - winpr_int_assert
                - strncmp
                - realloc
                - free
                - free
        - Branch String:   'winpr/libwinpr/environment/environment.c:446,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:447,5'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - strncmp
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - strstr
                - realloc
                - free
                - free
            - BranchSide:      'winpr/libwinpr/environment/environment.c:449,25'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - strncmp
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - strstr
                - realloc
                - free
                - free
        - Branch String:   'winpr/libwinpr/environment/environment.c:450,41'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:450,41'
              BranchSideFuncs:
                - winpr_int_assert
                - strncmp
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - strstr
                - winpr_int_assert
                - realloc
                - free
                - free
            - BranchSide:      'winpr/libwinpr/environment/environment.c:450,41'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/environment/environment.c:450,41'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:450,41'
              BranchSideFuncs:
                - winpr_int_assert
                - strncmp
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - strstr
                - winpr_int_assert
                - realloc
                - free
                - free
            - BranchSide:      'winpr/libwinpr/environment/environment.c:450,41'
              BranchSideFuncs:
                - winpr_int_assert
                - strncmp
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - strstr
                - winpr_int_assert
                - realloc
                - free
                - free
        - Branch String:   'winpr/libwinpr/environment/environment.c:450,41'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:450,41'
              BranchSideFuncs:
                - strncmp
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - strstr
                - winpr_int_assert
                - winpr_int_assert
                - realloc
                - free
                - free
            - BranchSide:      'winpr/libwinpr/environment/environment.c:450,41'
              BranchSideFuncs:
                - winpr_int_assert
                - strncmp
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - strstr
                - winpr_int_assert
                - realloc
                - free
                - free
        - Branch String:   'winpr/libwinpr/environment/environment.c:450,41'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:450,41'
              BranchSideFuncs:
                - winpr_int_assert
                - strncmp
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - strstr
                - winpr_int_assert
                - realloc
                - free
                - free
            - BranchSide:      'winpr/libwinpr/environment/environment.c:450,41'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/environment/environment.c:450,41'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:450,41'
              BranchSideFuncs:
                - strncmp
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - strstr
                - winpr_int_assert
                - winpr_int_assert
                - realloc
                - free
                - free
            - BranchSide:      'winpr/libwinpr/environment/environment.c:450,41'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/environment/environment.c:450,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:453,11'
              BranchSideFuncs:
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - strstr
                - winpr_int_assert
                - winpr_int_assert
                - strncmp
                - realloc
                - free
                - free
            - BranchSide:      'winpr/libwinpr/environment/environment.c:483,3'
              BranchSideFuncs:
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - strstr
                - winpr_int_assert
                - winpr_int_assert
                - strncmp
                - realloc
                - free
                - free
        - Branch String:   'winpr/libwinpr/environment/environment.c:453,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:456,17'
              BranchSideFuncs:
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - strstr
                - winpr_int_assert
                - winpr_int_assert
                - strncmp
                - realloc
                - free
                - free
            - BranchSide:      'winpr/libwinpr/environment/environment.c:460,6'
              BranchSideFuncs:
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - strstr
                - winpr_int_assert
                - winpr_int_assert
                - strncmp
                - realloc
                - free
                - free
        - Branch String:   'winpr/libwinpr/environment/environment.c:460,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:462,27'
              BranchSideFuncs:
                - realloc
                - free
                - free
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - strstr
                - winpr_int_assert
                - winpr_int_assert
                - strncmp
            - BranchSide:      'winpr/libwinpr/environment/environment.c:476,17'
              BranchSideFuncs:
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - strstr
                - winpr_int_assert
                - winpr_int_assert
                - strncmp
                - realloc
                - free
                - free
        - Branch String:   'winpr/libwinpr/environment/environment.c:466,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:468,20'
              BranchSideFuncs:
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - strstr
                - winpr_int_assert
                - winpr_int_assert
                - strncmp
                - realloc
                - free
                - free
            - BranchSide:      'winpr/libwinpr/environment/environment.c:472,30'
              BranchSideFuncs:
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - strstr
                - winpr_int_assert
                - winpr_int_assert
                - strncmp
                - realloc
                - free
                - free
        - Branch String:   'winpr/libwinpr/environment/environment.c:485,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:487,4'
              BranchSideFuncs:
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - strlen
                - strstr
                - winpr_int_assert
                - winpr_int_assert
                - strncmp
                - realloc
                - free
                - free
                - realloc
                - free
                - free
            - BranchSide:      'winpr/libwinpr/environment/environment.c:492,12'
              BranchSideFuncs:
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - strlen
                - strstr
                - winpr_int_assert
                - winpr_int_assert
                - strncmp
                - realloc
                - free
                - free
                - realloc
                - free
                - free
        - Branch String:   'winpr/libwinpr/environment/environment.c:496,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:498,8'
              BranchSideFuncs:
                - free
                - strlen
                - realloc
                - free
                - free
            - BranchSide:      'winpr/libwinpr/environment/environment.c:526,2'
              BranchSideFuncs:
                - free
        - Branch String:   'winpr/libwinpr/environment/environment.c:498,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:499,4'
              BranchSideFuncs:
                - strlen
                - free
                - realloc
                - free
                - free
            - BranchSide:      'winpr/libwinpr/environment/environment.c:501,24'
              BranchSideFuncs:
                - strlen
                - free
                - realloc
                - free
                - free
        - Branch String:   'winpr/libwinpr/environment/environment.c:503,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:505,24'
              BranchSideFuncs:
                - realloc
                - free
                - free
                - free
                - strlen
            - BranchSide:      'winpr/libwinpr/environment/environment.c:518,9'
              BranchSideFuncs:
                - free
                - strlen
                - realloc
                - free
                - free
        - Branch String:   'winpr/libwinpr/environment/environment.c:508,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:510,17'
              BranchSideFuncs:
                - free
                - strlen
                - realloc
                - free
                - free
            - BranchSide:      'winpr/libwinpr/environment/environment.c:515,27'
              BranchSideFuncs:
                - free
                - strlen
                - realloc
                - free
                - free
      Callsites:
        - Src:             'winpr/libwinpr/environment/environment.c:369,26'
          Dst:             calloc
        - Src:             'winpr/libwinpr/environment/environment.c:380,12'
          Dst:             strlen
        - Src:             'winpr/libwinpr/environment/environment.c:387,28'
          Dst:             realloc
        - Src:             'winpr/libwinpr/environment/environment.c:405,31'
          Dst:             calloc
        - Src:             'winpr/libwinpr/environment/environment.c:418,12'
          Dst:             strlen
        - Src:             'winpr/libwinpr/environment/environment.c:423,21'
          Dst:             realloc
        - Src:             'winpr/libwinpr/environment/environment.c:443,18'
          Dst:             strlen
        - Src:             'winpr/libwinpr/environment/environment.c:444,18'
          Dst:             strstr
        - Src:             'winpr/libwinpr/environment/environment.c:450,41'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/environment/environment.c:450,41'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/environment/environment.c:450,8'
          Dst:             strncmp
        - Src:             'winpr/libwinpr/environment/environment.c:464,17'
          Dst:             realloc
        - Src:             'winpr/libwinpr/environment/environment.c:501,17'
          Dst:             strlen
        - Src:             'winpr/libwinpr/environment/environment.c:506,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: 534
      functionLinenumberEnd: 592
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - envBlock
        - lpName
        - lpBuffer
        - nSize
      BBCount:         54
      ICount:          299
      EdgeCount:       69
      CyclomaticComplexity: 17
      functionsReached:
        - strlen
        - strncmp
        - strstr
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/environment/environment.c:543,14'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:543,25'
              BranchSideFuncs:
                - strlen
                - strlen
                - strlen
                - strstr
                - winpr_int_assert
                - winpr_int_assert
                - strncmp
            - BranchSide:      'winpr/libwinpr/environment/environment.c:544,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/environment/environment.c:543,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:544,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/environment/environment.c:546,24'
              BranchSideFuncs:
                - strlen
                - strlen
                - strlen
                - strstr
                - winpr_int_assert
                - winpr_int_assert
                - strncmp
        - Branch String:   'winpr/libwinpr/environment/environment.c:548,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:549,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/environment/environment.c:551,2'
              BranchSideFuncs:
                - strlen
                - strlen
                - strstr
                - winpr_int_assert
                - winpr_int_assert
                - strncmp
        - Branch String:   'winpr/libwinpr/environment/environment.c:551,16'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:551,21'
              BranchSideFuncs:
                - strlen
                - strlen
                - strstr
                - winpr_int_assert
                - winpr_int_assert
                - strncmp
            - BranchSide:      'winpr/libwinpr/environment/environment.c:551,2'
              BranchSideFuncs:
                - strlen
                - strlen
                - strstr
                - winpr_int_assert
                - winpr_int_assert
                - strncmp
        - Branch String:   'winpr/libwinpr/environment/environment.c:551,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:553,20'
              BranchSideFuncs:
                - strlen
                - strstr
                - winpr_int_assert
                - winpr_int_assert
                - strncmp
                - strlen
            - BranchSide:      'winpr/libwinpr/environment/environment.c:579,7'
              BranchSideFuncs:
                - strlen
        - Branch String:   'winpr/libwinpr/environment/environment.c:556,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:559,4'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - strncmp
                - strlen
                - strlen
                - strstr
            - BranchSide:      'winpr/libwinpr/environment/environment.c:562,13'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - strncmp
                - strlen
                - strlen
                - strstr
        - Branch String:   'winpr/libwinpr/environment/environment.c:562,13'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:562,13'
              BranchSideFuncs:
                - winpr_int_assert
                - strncmp
                - strlen
                - strlen
                - strstr
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/environment/environment.c:562,13'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/environment/environment.c:562,13'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:562,13'
              BranchSideFuncs:
                - winpr_int_assert
                - strncmp
                - strlen
                - strlen
                - strstr
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/environment/environment.c:562,13'
              BranchSideFuncs:
                - winpr_int_assert
                - strncmp
                - strlen
                - strlen
                - strstr
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/environment/environment.c:562,13'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:562,13'
              BranchSideFuncs:
                - strncmp
                - strlen
                - strlen
                - strstr
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/environment/environment.c:562,13'
              BranchSideFuncs:
                - winpr_int_assert
                - strncmp
                - strlen
                - strlen
                - strstr
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/environment/environment.c:562,13'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:562,13'
              BranchSideFuncs:
                - winpr_int_assert
                - strncmp
                - strlen
                - strlen
                - strstr
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/environment/environment.c:562,13'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/environment/environment.c:562,13'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:562,13'
              BranchSideFuncs:
                - strncmp
                - strlen
                - strlen
                - strstr
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/environment/environment.c:562,13'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/environment/environment.c:564,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:566,14'
              BranchSideFuncs:
                - strlen
                - strlen
                - strstr
                - winpr_int_assert
                - winpr_int_assert
                - strncmp
            - BranchSide:      'winpr/libwinpr/environment/environment.c:570,15'
              BranchSideFuncs:
                - strncmp
                - strlen
                - strlen
                - strstr
                - winpr_int_assert
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/environment/environment.c:570,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:572,10'
              BranchSideFuncs:
                - strlen
            - BranchSide:      'winpr/libwinpr/environment/environment.c:576,13'
              BranchSideFuncs:
                - strlen
                - strlen
                - strstr
                - winpr_int_assert
                - winpr_int_assert
                - strncmp
        - Branch String:   'winpr/libwinpr/environment/environment.c:579,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:580,3'
              BranchSideFuncs:
                - strlen
            - BranchSide:      'winpr/libwinpr/environment/environment.c:582,19'
              BranchSideFuncs:
                - strlen
        - Branch String:   'winpr/libwinpr/environment/environment.c:583,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:584,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/environment/environment.c:586,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/environment/environment.c:586,28'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:586,33'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/environment/environment.c:587,17'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/environment/environment.c:586,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:587,17'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/environment/environment.c:589,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/environment/environment.c:546,17'
          Dst:             strlen
        - Src:             'winpr/libwinpr/environment/environment.c:553,13'
          Dst:             strlen
        - Src:             'winpr/libwinpr/environment/environment.c:554,17'
          Dst:             strstr
        - Src:             'winpr/libwinpr/environment/environment.c:562,13'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/environment/environment.c:562,13'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/environment/environment.c:570,7'
          Dst:             strncmp
        - Src:             'winpr/libwinpr/environment/environment.c:582,12'
          Dst:             strlen
    - functionName:    FreeEnvironmentStringsW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/environment/environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 345
      functionLinenumberEnd: 348
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpszEnvironmentBlock
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    FreeEnvironmentStringsA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/environment/environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 338
      functionLinenumberEnd: 341
      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: 332
      functionLinenumberEnd: 334
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - lpSrc
        - lpDst
        - nSize
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/environment/environment.c:333,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 216
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - tag
        - log_level
        - line
        - file
        - fkt
      BBCount:         9
      ICount:          67
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintMessageVA
      functionUses:    16
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/wlog.h:206,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/wlog.h:207,30'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessageVA
            - BranchSide:      'winpr/include/winpr/wlog.h:209,26'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessageVA
        - Branch String:   'winpr/include/winpr/wlog.h:209,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/wlog.h:209,7'
              BranchSideFuncs:
                - WLog_PrintMessageVA
            - BranchSide:      'winpr/include/winpr/wlog.h:212,4'
              BranchSideFuncs:
                - WLog_PrintMessageVA
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:207,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:209,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:213,4'
          Dst:             WLog_PrintMessageVA
    - functionName:    ExpandEnvironmentStringsA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/environment/environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 325
      functionLinenumberEnd: 327
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - lpSrc
        - lpDst
        - nSize
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/environment/environment.c:326,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SetEnvironmentStringsW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/environment/environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 318
      functionLinenumberEnd: 320
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - NewEnvironment
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/environment/environment.c:319,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SetEnvironmentStringsA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/environment/environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 312
      functionLinenumberEnd: 314
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - NewEnvironment
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/environment/environment.c:313,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    GetEnvironmentStringsW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/environment/environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 306
      functionLinenumberEnd: 308
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/environment/environment.c:307,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:307,2'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.3119
            - BranchSide:      'winpr/libwinpr/environment/environment.c:307,2'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.3119
      Callsites:
        - Src:             'winpr/libwinpr/environment/environment.c:307,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    GetEnvironmentStrings
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/environment/environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 250
      functionLinenumberEnd: 303
      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:252,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:252,8'
              BranchSideFuncs:
                - calloc
                - strlen
                - realloc
                - free
            - BranchSide:      'winpr/libwinpr/environment/environment.c:252,8'
              BranchSideFuncs:
                - calloc
                - strlen
                - realloc
                - free
        - Branch String:   'winpr/libwinpr/environment/environment.c:264,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:265,3'
              BranchSideFuncs:
                - strlen
                - realloc
                - free
            - BranchSide:      'winpr/libwinpr/environment/environment.c:267,2'
              BranchSideFuncs:
                - strlen
                - realloc
                - free
        - Branch String:   'winpr/libwinpr/environment/environment.c:267,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:269,20'
              BranchSideFuncs:
                - strlen
                - realloc
                - free
            - BranchSide:      'winpr/libwinpr/environment/environment.c:297,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/environment/environment.c:271,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:273,10'
              BranchSideFuncs:
                - realloc
                - free
                - strlen
            - BranchSide:      'winpr/libwinpr/environment/environment.c:288,9'
              BranchSideFuncs:
                - strlen
                - realloc
                - free
        - Branch String:   'winpr/libwinpr/environment/environment.c:278,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:280,10'
              BranchSideFuncs:
                - strlen
                - realloc
                - free
            - BranchSide:      'winpr/libwinpr/environment/environment.c:284,27'
              BranchSideFuncs:
                - strlen
                - realloc
                - free
      Callsites:
        - Src:             'winpr/libwinpr/environment/environment.c:263,31'
          Dst:             calloc
        - Src:             'winpr/libwinpr/environment/environment.c:269,12'
          Dst:             strlen
        - Src:             'winpr/libwinpr/environment/environment.c:277,20'
          Dst:             realloc
    - functionName:    SetEnvironmentVariableW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/environment/environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 226
      functionLinenumberEnd: 228
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpName
        - lpValue
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/environment/environment.c:227,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SetEnvironmentVariableA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/environment/environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 201
      functionLinenumberEnd: 223
      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:203,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:204,3'
              BranchSideFuncs:
                - unsetenv
                - setenv
            - BranchSide:      'winpr/libwinpr/environment/environment.c:206,6'
              BranchSideFuncs:
                - unsetenv
                - setenv
        - Branch String:   'winpr/libwinpr/environment/environment.c:206,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:209,19'
              BranchSideFuncs:
                - setenv
            - BranchSide:      'winpr/libwinpr/environment/environment.c:215,21'
              BranchSideFuncs:
                - unsetenv
        - Branch String:   'winpr/libwinpr/environment/environment.c:209,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:210,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/environment/environment.c:211,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/environment/environment.c:215,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:0,0'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/environment/environment.c:216,4'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/environment/environment.c:209,12'
          Dst:             setenv
        - Src:             'winpr/libwinpr/environment/environment.c:215,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: 194
      functionLinenumberEnd: 197
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - lpName
        - lpBuffer
        - nSize
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - SetLastError
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/environment/environment.c:195,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/environment/environment.c:196,2'
          Dst:             SetLastError
    - functionName:    NeedCurrentDirectoryForExePathW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/environment/environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 154
      functionLinenumberEnd: 156
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ExeName
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/environment/environment.c:155,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    NeedCurrentDirectoryForExePathA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/environment/environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 148
      functionLinenumberEnd: 150
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ExeName
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/environment/environment.c:149,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    GetCommandLineW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/environment/environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 142
      functionLinenumberEnd: 144
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/environment/environment.c:143,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:143,2'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.3119
            - BranchSide:      'winpr/libwinpr/environment/environment.c:143,2'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.3119
      Callsites:
        - Src:             'winpr/libwinpr/environment/environment.c:143,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    GetCommandLineA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/environment/environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 136
      functionLinenumberEnd: 138
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/environment/environment.c:137,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:137,2'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.3119
            - BranchSide:      'winpr/libwinpr/environment/environment.c:137,2'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.3119
      Callsites:
        - Src:             'winpr/libwinpr/environment/environment.c:137,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SearchPathW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/environment/environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 130
      functionLinenumberEnd: 132
      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:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/environment/environment.c:131,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SearchPathA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/environment/environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 122
      functionLinenumberEnd: 124
      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:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/environment/environment.c:123,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SetCurrentDirectoryW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/environment/environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 114
      functionLinenumberEnd: 116
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpPathName
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/environment/environment.c:115,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SetCurrentDirectoryA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/environment/environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 108
      functionLinenumberEnd: 110
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpPathName
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/environment/environment.c:109,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    GetCurrentDirectoryW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/environment/environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 102
      functionLinenumberEnd: 104
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - nBufferLength
        - lpBuffer
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/environment/environment.c:103,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    GetCurrentDirectoryA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/environment/environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 99
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - nBufferLength
        - lpBuffer
      BBCount:         24
      ICount:          155
      EdgeCount:       32
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - getcwd
        - realloc
        - strnlen
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/environment/environment.c:58,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:60,9'
              BranchSideFuncs:
                - getcwd
                - __errno_location
                - free
                - strnlen
                - free
                - free
                - free
                - free
                - realloc
                - free
            - BranchSide:      'winpr/libwinpr/environment/environment.c:63,9'
              BranchSideFuncs:
                - getcwd
                - __errno_location
                - free
                - strnlen
                - free
                - free
                - free
                - free
                - realloc
                - free
        - Branch String:   'winpr/libwinpr/environment/environment.c:66,17'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:66,2'
              BranchSideFuncs:
                - free
                - strnlen
                - free
                - free
                - free
                - free
                - realloc
                - free
                - getcwd
                - __errno_location
            - BranchSide:      'winpr/libwinpr/environment/environment.c:66,21'
              BranchSideFuncs:
                - __errno_location
                - free
                - strnlen
                - free
                - free
                - free
                - free
                - realloc
                - free
                - getcwd
        - Branch String:   'winpr/libwinpr/environment/environment.c:66,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:56,10'
              BranchSideFuncs:
                - realloc
                - free
                - getcwd
                - __errno_location
                - free
                - strnlen
                - free
                - free
                - free
                - free
            - BranchSide:      'winpr/libwinpr/environment/environment.c:68,7'
              BranchSideFuncs:
                - free
                - strnlen
                - free
                - free
                - free
                - free
        - Branch String:   'winpr/libwinpr/environment/environment.c:68,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:70,8'
              BranchSideFuncs:
                - strnlen
                - free
                - free
                - free
                - free
            - BranchSide:      'winpr/libwinpr/environment/environment.c:74,19'
              BranchSideFuncs:
                - strnlen
                - free
                - free
                - free
                - free
        - Branch String:   'winpr/libwinpr/environment/environment.c:76,27'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:76,31'
              BranchSideFuncs:
                - free
                - free
                - free
                - free
            - BranchSide:      'winpr/libwinpr/environment/environment.c:83,7'
              BranchSideFuncs:
                - free
                - free
                - free
        - Branch String:   'winpr/libwinpr/environment/environment.c:76,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:78,8'
              BranchSideFuncs:
                - free
            - BranchSide:      'winpr/libwinpr/environment/environment.c:83,7'
              BranchSideFuncs:
                - free
                - free
                - free
        - Branch String:   'winpr/libwinpr/environment/environment.c:83,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:85,9'
              BranchSideFuncs:
                - free
            - BranchSide:      'winpr/libwinpr/environment/environment.c:89,8'
              BranchSideFuncs:
                - free
                - free
        - Branch String:   'winpr/libwinpr/environment/environment.c:89,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:91,9'
              BranchSideFuncs:
                - free
            - BranchSide:      'winpr/libwinpr/environment/environment.c:95,10'
              BranchSideFuncs:
                - free
      Callsites:
        - Src:             'winpr/libwinpr/environment/environment.c:57,15'
          Dst:             realloc
        - Src:             'winpr/libwinpr/environment/environment.c:65,10'
          Dst:             getcwd
        - Src:             'winpr/libwinpr/environment/environment.c:66,21'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/environment/environment.c:74,11'
          Dst:             strnlen
    - 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:    winpr_GetConfigFilePath
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1201
      functionLinenumberEnd: 1228
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - system
        - filename
      BBCount:         8
      ICount:          63
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - GetCombinedPath
        - GetKnownSubPath
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/path.c:1219,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:1220,3'
              BranchSideFuncs:
                - GetCombinedPath
                - free
            - BranchSide:      'winpr/libwinpr/path/path.c:1221,7'
              BranchSideFuncs:
                - GetCombinedPath
                - free
        - Branch String:   'winpr/libwinpr/path/path.c:1221,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:1222,10'
              BranchSideFuncs:
                - GetCombinedPath
                - free
            - BranchSide:      'winpr/libwinpr/path/path.c:1224,31'
              BranchSideFuncs:
                - GetCombinedPath
                - free
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:1216,15'
          Dst:             GetKnownSubPath
        - Src:             'winpr/libwinpr/path/path.c:1224,15'
          Dst:             GetCombinedPath
    - functionName:    concat
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1114
      functionLinenumberEnd: 1122
      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:1116,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:1117,3'
              BranchSideFuncs:
                - _wcsncat
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/path.c:1119,11'
              BranchSideFuncs:
                - _wcsncat
                - _wcsncat
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:1115,15'
          Dst:             calloc
        - Src:             'winpr/libwinpr/path/path.c:1119,2'
          Dst:             _wcsncat
        - Src:             'winpr/libwinpr/path/path.c:1120,2'
          Dst:             _wcsncat
    - functionName:    winpr_RemoveDirectory_RecursiveW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1135
      functionLinenumberEnd: 1198
      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:1138,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:1139,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:1141,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:1144,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:1145,3'
              BranchSideFuncs:
                - _wcsncat
                - InitializeConstWCharFromUtf8
                - NativePathCchAppendW
                - FindFirstFileW
                - _wcsnlen
                - concat
                - FindClose
                - free
                - DeleteFileW
                - free
                - RemoveDirectoryW
                - FindNextFileW
                - winpr_RemoveDirectory_RecursiveW
            - BranchSide:      'winpr/libwinpr/path/path.c:1146,11'
              BranchSideFuncs:
                - _wcsncat
                - InitializeConstWCharFromUtf8
                - NativePathCchAppendW
                - FindFirstFileW
                - _wcsnlen
                - concat
                - FindClose
                - free
                - DeleteFileW
                - free
                - RemoveDirectoryW
                - FindNextFileW
                - winpr_RemoveDirectory_RecursiveW
        - Branch String:   'winpr/libwinpr/path/path.c:1152,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:1153,3'
              BranchSideFuncs:
                - FindClose
                - free
            - BranchSide:      'winpr/libwinpr/path/path.c:1155,19'
              BranchSideFuncs:
                - FindFirstFileW
                - _wcsnlen
                - concat
                - FindClose
                - free
                - DeleteFileW
                - free
                - RemoveDirectoryW
                - FindNextFileW
                - winpr_RemoveDirectory_RecursiveW
        - Branch String:   'winpr/libwinpr/path/path.c:1158,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:1159,3'
              BranchSideFuncs:
                - FindClose
                - free
            - BranchSide:      'winpr/libwinpr/path/path.c:1161,6'
              BranchSideFuncs:
                - _wcsnlen
                - concat
                - FindClose
                - free
                - DeleteFileW
                - free
                - RemoveDirectoryW
                - FindNextFileW
                - winpr_RemoveDirectory_RecursiveW
        - Branch String:   'winpr/libwinpr/path/path.c:1167,17'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:1167,33'
              BranchSideFuncs:
                - concat
                - FindClose
                - free
                - DeleteFileW
                - free
                - RemoveDirectoryW
                - _wcsnlen
                - FindNextFileW
                - winpr_RemoveDirectory_RecursiveW
            - BranchSide:      'winpr/libwinpr/path/path.c:1168,8'
              BranchSideFuncs:
                - concat
                - FindClose
                - free
                - DeleteFileW
                - free
                - RemoveDirectoryW
                - _wcsnlen
                - FindNextFileW
                - winpr_RemoveDirectory_RecursiveW
        - Branch String:   'winpr/libwinpr/path/path.c:1167,54'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:1168,8'
              BranchSideFuncs:
                - FindClose
                - free
                - RemoveDirectoryW
                - _wcsnlen
                - concat
                - DeleteFileW
                - free
                - winpr_RemoveDirectory_RecursiveW
                - FindNextFileW
            - BranchSide:      'winpr/libwinpr/path/path.c:1170,4'
              BranchSideFuncs:
                - FindClose
                - free
                - RemoveDirectoryW
                - _wcsnlen
                - concat
                - DeleteFileW
                - free
                - winpr_RemoveDirectory_RecursiveW
                - FindNextFileW
        - Branch String:   'winpr/libwinpr/path/path.c:1168,17'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:1168,33'
              BranchSideFuncs:
                - concat
                - FindClose
                - free
                - DeleteFileW
                - free
                - RemoveDirectoryW
                - _wcsnlen
                - FindNextFileW
                - winpr_RemoveDirectory_RecursiveW
            - BranchSide:      'winpr/libwinpr/path/path.c:1173,28'
              BranchSideFuncs:
                - concat
                - FindClose
                - free
                - DeleteFileW
                - free
                - RemoveDirectoryW
                - _wcsnlen
                - FindNextFileW
                - winpr_RemoveDirectory_RecursiveW
        - Branch String:   'winpr/libwinpr/path/path.c:1168,53'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:1168,69'
              BranchSideFuncs:
                - concat
                - FindClose
                - free
                - DeleteFileW
                - free
                - RemoveDirectoryW
                - _wcsnlen
                - FindNextFileW
                - winpr_RemoveDirectory_RecursiveW
            - BranchSide:      'winpr/libwinpr/path/path.c:1173,28'
              BranchSideFuncs:
                - concat
                - FindClose
                - free
                - DeleteFileW
                - free
                - RemoveDirectoryW
                - _wcsnlen
                - FindNextFileW
                - winpr_RemoveDirectory_RecursiveW
        - Branch String:   'winpr/libwinpr/path/path.c:1167,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:1170,4'
              BranchSideFuncs:
                - FindClose
                - free
                - RemoveDirectoryW
                - _wcsnlen
                - concat
                - DeleteFileW
                - free
                - winpr_RemoveDirectory_RecursiveW
                - FindNextFileW
            - BranchSide:      'winpr/libwinpr/path/path.c:1173,28'
              BranchSideFuncs:
                - concat
                - FindClose
                - free
                - DeleteFileW
                - free
                - RemoveDirectoryW
                - _wcsnlen
                - FindNextFileW
                - winpr_RemoveDirectory_RecursiveW
        - Branch String:   'winpr/libwinpr/path/path.c:1174,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:1175,4'
              BranchSideFuncs:
                - DeleteFileW
                - free
                - FindClose
                - free
                - RemoveDirectoryW
                - _wcsnlen
                - concat
                - FindNextFileW
                - winpr_RemoveDirectory_RecursiveW
            - BranchSide:      'winpr/libwinpr/path/path.c:1177,20'
              BranchSideFuncs:
                - DeleteFileW
                - free
                - FindClose
                - free
                - RemoveDirectoryW
                - _wcsnlen
                - concat
                - FindNextFileW
                - winpr_RemoveDirectory_RecursiveW
        - Branch String:   'winpr/libwinpr/path/path.c:1177,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:1178,43'
              BranchSideFuncs:
                - winpr_RemoveDirectory_RecursiveW
                - free
                - FindClose
                - free
                - RemoveDirectoryW
                - _wcsnlen
                - concat
                - DeleteFileW
                - FindNextFileW
            - BranchSide:      'winpr/libwinpr/path/path.c:1180,22'
              BranchSideFuncs:
                - DeleteFileW
                - free
                - FindClose
                - free
                - RemoveDirectoryW
                - _wcsnlen
                - concat
                - winpr_RemoveDirectory_RecursiveW
                - FindNextFileW
        - Branch String:   'winpr/libwinpr/path/path.c:1184,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:1185,4'
              BranchSideFuncs:
                - FindClose
                - free
                - RemoveDirectoryW
                - _wcsnlen
                - concat
                - DeleteFileW
                - free
                - winpr_RemoveDirectory_RecursiveW
                - FindNextFileW
            - BranchSide:      'winpr/libwinpr/path/path.c:1186,2'
              BranchSideFuncs:
                - FindClose
                - free
                - RemoveDirectoryW
                - _wcsnlen
                - concat
                - DeleteFileW
                - free
                - winpr_RemoveDirectory_RecursiveW
                - FindNextFileW
        - Branch String:   'winpr/libwinpr/path/path.c:1186,15'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:1186,32'
              BranchSideFuncs:
                - FindNextFileW
                - FindClose
                - free
                - RemoveDirectoryW
                - _wcsnlen
                - concat
                - DeleteFileW
                - free
                - winpr_RemoveDirectory_RecursiveW
            - BranchSide:      'winpr/libwinpr/path/path.c:1186,2'
              BranchSideFuncs:
                - FindClose
                - free
                - RemoveDirectoryW
                - _wcsnlen
                - concat
                - DeleteFileW
                - free
                - FindNextFileW
                - winpr_RemoveDirectory_RecursiveW
        - Branch String:   'winpr/libwinpr/path/path.c:1186,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:1165,44'
              BranchSideFuncs:
                - _wcsnlen
                - concat
                - FindClose
                - free
                - DeleteFileW
                - free
                - RemoveDirectoryW
                - FindNextFileW
                - winpr_RemoveDirectory_RecursiveW
            - BranchSide:      'winpr/libwinpr/path/path.c:1188,6'
              BranchSideFuncs:
                - FindClose
                - free
                - RemoveDirectoryW
        - Branch String:   'winpr/libwinpr/path/path.c:1188,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:1188,6'
              BranchSideFuncs:
                - RemoveDirectoryW
                - FindClose
                - free
            - BranchSide:      'winpr/libwinpr/path/path.c:1190,25'
              BranchSideFuncs:
                - RemoveDirectoryW
                - FindClose
                - free
        - Branch String:   'winpr/libwinpr/path/path.c:1190,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:1191,8'
              BranchSideFuncs:
                - FindClose
                - free
            - BranchSide:      'winpr/libwinpr/path/path.c:1192,2'
              BranchSideFuncs:
                - FindClose
                - free
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:1141,29'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/path/path.c:1143,22'
          Dst:             calloc
        - Src:             'winpr/libwinpr/path/path.c:1146,2'
          Dst:             _wcsncat
        - Src:             'winpr/libwinpr/path/path.c:1149,22'
          Dst:             InitializeConstWCharFromUtf8
        - Src:             'winpr/libwinpr/path/path.c:1150,21'
          Dst:             NativePathCchAppendW
        - Src:             'winpr/libwinpr/path/path.c:1156,8'
          Dst:             FindFirstFileW
        - Src:             'winpr/libwinpr/path/path.c:1165,22'
          Dst:             _wcsnlen
        - Src:             'winpr/libwinpr/path/path.c:1173,21'
          Dst:             concat
        - Src:             'winpr/libwinpr/path/path.c:1178,10'
          Dst:             winpr_RemoveDirectory_RecursiveW
        - Src:             'winpr/libwinpr/path/path.c:1180,10'
          Dst:             DeleteFileW
        - Src:             'winpr/libwinpr/path/path.c:1186,18'
          Dst:             FindNextFileW
        - Src:             'winpr/libwinpr/path/path.c:1190,8'
          Dst:             RemoveDirectoryW
        - Src:             'winpr/libwinpr/path/path.c:1195,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
        - _wcsncat
      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,18'
              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,18'
              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: 152
      functionLinenumberEnd: 157
      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:154,6'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/error.h:155,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/error.h:156,9'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    winpr_RemoveDirectory_RecursiveA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1125
      functionLinenumberEnd: 1132
      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:1127,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:1128,3'
              BranchSideFuncs:
                - winpr_RemoveDirectory_RecursiveW
                - free
            - BranchSide:      'winpr/libwinpr/path/path.c:1129,51'
              BranchSideFuncs:
                - winpr_RemoveDirectory_RecursiveW
                - free
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:1126,16'
          Dst:             ConvertUtf8ToWCharAlloc
        - Src:             'winpr/libwinpr/path/path.c:1129,18'
          Dst:             winpr_RemoveDirectory_RecursiveW
    - functionName:    GetKnownPathIdString
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1091
      functionLinenumberEnd: 1111
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - id
      BBCount:         10
      ICount:          53
      EdgeCount:       18
      CyclomaticComplexity: 10
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/path.c:1092,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:1095,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:1097,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:1099,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:1101,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:1103,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:1105,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:1107,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:1109,4'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    PathGetSharedLibraryExtensionW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1019
      functionLinenumberEnd: 1088
      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:1034,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:1036,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:1060,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:1036,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:1038,8'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:1049,8'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:1038,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:1039,12'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:1041,8'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:1041,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:1042,12'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:1044,8'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:1044,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:1045,12'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:1046,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:1049,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:1050,12'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:1052,8'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:1052,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:1053,12'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:1055,8'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:1055,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:0,0'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:1056,12'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:1060,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:1070,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:1083,10'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:1021,47'
          Dst:             InitializeConstWCharFromUtf8
        - Src:             'winpr/libwinpr/path/path.c:1024,6'
          Dst:             InitializeConstWCharFromUtf8
        - Src:             'winpr/libwinpr/path/path.c:1025,49'
          Dst:             InitializeConstWCharFromUtf8
        - Src:             'winpr/libwinpr/path/path.c:1028,6'
          Dst:             InitializeConstWCharFromUtf8
        - Src:             'winpr/libwinpr/path/path.c:1030,6'
          Dst:             InitializeConstWCharFromUtf8
        - Src:             'winpr/libwinpr/path/path.c:1032,6'
          Dst:             InitializeConstWCharFromUtf8
    - functionName:    PathGetSharedLibraryExtensionA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 961
      functionLinenumberEnd: 1016
      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:962,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:964,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:988,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:964,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:966,8'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:977,8'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:966,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:967,5'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:969,8'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:969,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:970,5'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:972,8'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:972,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:973,5'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:974,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:977,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:978,5'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:980,8'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:980,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:981,5'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:983,8'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:983,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:0,0'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:984,5'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:988,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:998,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:1011,3'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    PathGetSeparatorW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 927
      functionLinenumberEnd: 947
      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:937,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:938,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:940,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:940,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:941,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:942,11'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:942,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:943,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:944,11'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    PathGetSeparatorA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 910
      functionLinenumberEnd: 923
      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:913,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:914,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:916,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:916,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:917,13'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:918,11'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:918,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:919,13'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:920,11'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    PathCchConvertStyleW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 850
      functionLinenumberEnd: 903
      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:851,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:853,15'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:859,11'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:853,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:855,8'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:858,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:855,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:856,5'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:857,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:859,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:861,15'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:867,11'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:861,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:863,8'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:866,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:863,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:864,5'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:865,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:867,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:883,16'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:899,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:883,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:885,9'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:895,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:885,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:886,6'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:887,4'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    PathCchConvertStyleA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 800
      functionLinenumberEnd: 847
      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:801,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:803,15'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:809,11'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:803,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:805,8'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:808,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:805,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:806,5'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:807,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:809,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:811,15'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:817,11'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:811,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:813,8'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:816,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:813,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:814,5'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:815,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:817,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:830,15'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:843,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:830,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:832,8'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:839,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:832,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:833,5'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:834,3'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    PathCchRemoveFileSpecW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 786
      functionLinenumberEnd: 788
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - pszPath
        - cchPath
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:787,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 216
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - tag
        - log_level
        - line
        - file
        - fkt
      BBCount:         9
      ICount:          67
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintMessageVA
      functionUses:    35
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/wlog.h:206,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/wlog.h:207,30'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessageVA
            - BranchSide:      'winpr/include/winpr/wlog.h:209,26'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessageVA
        - Branch String:   'winpr/include/winpr/wlog.h:209,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/wlog.h:209,7'
              BranchSideFuncs:
                - WLog_PrintMessageVA
            - BranchSide:      'winpr/include/winpr/wlog.h:212,4'
              BranchSideFuncs:
                - WLog_PrintMessageVA
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:207,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:209,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:213,4'
          Dst:             WLog_PrintMessageVA
    - functionName:    PathCchRemoveFileSpecA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 780
      functionLinenumberEnd: 782
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - pszPath
        - cchPath
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:781,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    PathCchStripPrefixW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 737
      functionLinenumberEnd: 773
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - pszPath
        - cchPath
      BBCount:         30
      ICount:          172
      EdgeCount:       41
      CyclomaticComplexity: 13
      functionsReached:
        - HRESULT_FROM_WIN32
        - IsCharAlphaW
        - _wcslen
        - wmemmove_s
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/path.c:740,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:741,3'
              BranchSideFuncs:
                - _wcslen
                - IsCharAlphaW
                - wmemmove_s
                - HRESULT_FROM_WIN32
            - BranchSide:      'winpr/libwinpr/path/path.c:743,6'
              BranchSideFuncs:
                - _wcslen
                - IsCharAlphaW
                - wmemmove_s
                - HRESULT_FROM_WIN32
        - Branch String:   'winpr/libwinpr/path/path.c:743,18'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:743,21'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:744,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:743,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:744,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:746,16'
              BranchSideFuncs:
                - _wcslen
                - IsCharAlphaW
                - wmemmove_s
                - HRESULT_FROM_WIN32
        - Branch String:   'winpr/libwinpr/path/path.c:746,36'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:746,40'
              BranchSideFuncs:
                - _wcslen
                - IsCharAlphaW
                - wmemmove_s
                - HRESULT_FROM_WIN32
            - BranchSide:      'winpr/libwinpr/path/path.c:746,14'
              BranchSideFuncs:
                - _wcslen
                - IsCharAlphaW
                - wmemmove_s
                - HRESULT_FROM_WIN32
        - Branch String:   'winpr/libwinpr/path/path.c:746,60'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:746,64'
              BranchSideFuncs:
                - _wcslen
                - IsCharAlphaW
                - wmemmove_s
                - HRESULT_FROM_WIN32
            - BranchSide:      'winpr/libwinpr/path/path.c:746,14'
              BranchSideFuncs:
                - _wcslen
                - IsCharAlphaW
                - wmemmove_s
                - HRESULT_FROM_WIN32
        - Branch String:   'winpr/libwinpr/path/path.c:746,83'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:746,14'
              BranchSideFuncs:
                - _wcslen
                - IsCharAlphaW
                - wmemmove_s
                - HRESULT_FROM_WIN32
            - BranchSide:      'winpr/libwinpr/path/path.c:747,16'
              BranchSideFuncs:
                - _wcslen
                - IsCharAlphaW
                - wmemmove_s
                - HRESULT_FROM_WIN32
        - Branch String:   'winpr/libwinpr/path/path.c:751,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:753,7'
              BranchSideFuncs:
                - _wcslen
                - IsCharAlphaW
                - wmemmove_s
                - HRESULT_FROM_WIN32
            - BranchSide:      'winpr/libwinpr/path/path.c:772,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:753,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:754,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:756,31'
              BranchSideFuncs:
                - _wcslen
                - IsCharAlphaW
                - wmemmove_s
                - HRESULT_FROM_WIN32
        - Branch String:   'winpr/libwinpr/path/path.c:757,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:758,11'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
            - BranchSide:      'winpr/libwinpr/path/path.c:760,20'
              BranchSideFuncs:
                - IsCharAlphaW
                - wmemmove_s
        - Branch String:   'winpr/libwinpr/path/path.c:760,32'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:760,36'
              BranchSideFuncs:
                - wmemmove_s
            - BranchSide:      'winpr/libwinpr/path/path.c:770,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:760,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:762,15'
              BranchSideFuncs:
                - wmemmove_s
            - BranchSide:      'winpr/libwinpr/path/path.c:770,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:756,22'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/path/path.c:758,11'
          Dst:             HRESULT_FROM_WIN32
        - Src:             'winpr/libwinpr/path/path.c:760,7'
          Dst:             IsCharAlphaW
        - Src:             'winpr/libwinpr/path/path.c:762,4'
          Dst:             wmemmove_s
    - functionName:    PathCchStripPrefixA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 702
      functionLinenumberEnd: 734
      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:705,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:706,3'
              BranchSideFuncs:
                - IsCharAlphaA
                - memmove_s
            - BranchSide:      'winpr/libwinpr/path/path.c:708,6'
              BranchSideFuncs:
                - IsCharAlphaA
                - memmove_s
        - Branch String:   'winpr/libwinpr/path/path.c:708,18'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:708,21'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:709,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:708,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:709,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:711,16'
              BranchSideFuncs:
                - IsCharAlphaA
                - memmove_s
        - Branch String:   'winpr/libwinpr/path/path.c:711,36'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:711,40'
              BranchSideFuncs:
                - IsCharAlphaA
                - memmove_s
            - BranchSide:      'winpr/libwinpr/path/path.c:711,14'
              BranchSideFuncs:
                - IsCharAlphaA
                - memmove_s
        - Branch String:   'winpr/libwinpr/path/path.c:711,60'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:711,64'
              BranchSideFuncs:
                - IsCharAlphaA
                - memmove_s
            - BranchSide:      'winpr/libwinpr/path/path.c:711,14'
              BranchSideFuncs:
                - IsCharAlphaA
                - memmove_s
        - Branch String:   'winpr/libwinpr/path/path.c:711,83'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:711,14'
              BranchSideFuncs:
                - IsCharAlphaA
                - memmove_s
            - BranchSide:      'winpr/libwinpr/path/path.c:712,16'
              BranchSideFuncs:
                - IsCharAlphaA
                - memmove_s
        - Branch String:   'winpr/libwinpr/path/path.c:716,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:718,7'
              BranchSideFuncs:
                - IsCharAlphaA
                - memmove_s
            - BranchSide:      'winpr/libwinpr/path/path.c:733,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:718,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:719,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:721,19'
              BranchSideFuncs:
                - IsCharAlphaA
                - memmove_s
        - Branch String:   'winpr/libwinpr/path/path.c:721,31'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:721,35'
              BranchSideFuncs:
                - memmove_s
            - BranchSide:      'winpr/libwinpr/path/path.c:731,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:721,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:723,14'
              BranchSideFuncs:
                - memmove_s
            - BranchSide:      'winpr/libwinpr/path/path.c:731,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:721,7'
          Dst:             IsCharAlphaA
        - Src:             'winpr/libwinpr/path/path.c:723,4'
          Dst:             memmove_s
    - functionName:    PathCchStripToRootW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 692
      functionLinenumberEnd: 694
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - pszPath
        - cchPath
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:693,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    PathCchStripToRootA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 686
      functionLinenumberEnd: 688
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - pszPath
        - cchPath
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:687,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    PathCchSkipRootW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 676
      functionLinenumberEnd: 678
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pszPath
        - ppszRootEnd
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:677,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    PathCchSkipRootA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 670
      functionLinenumberEnd: 672
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pszPath
        - ppszRootEnd
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:671,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    PathIsUNCExW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 652
      functionLinenumberEnd: 663
      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:653,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:654,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:656,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:656,27'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:656,31'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:662,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:656,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:658,18'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:662,2'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    PathIsUNCExA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 638
      functionLinenumberEnd: 649
      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:639,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:640,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:642,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:642,27'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:642,31'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:648,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:642,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:644,18'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:648,2'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    PathCchIsRootW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 628
      functionLinenumberEnd: 630
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - pszPath
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:629,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    PathCchIsRootA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 622
      functionLinenumberEnd: 624
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - pszPath
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:623,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    PathCchRemoveExtensionW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 612
      functionLinenumberEnd: 614
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - pszPath
        - cchPath
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:613,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    PathCchRemoveExtensionA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 606
      functionLinenumberEnd: 608
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - pszPath
        - cchPath
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:607,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    PathCchRenameExtensionW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 596
      functionLinenumberEnd: 598
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - pszPath
        - cchPath
        - pszExt
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:597,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    PathCchRenameExtensionA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 589
      functionLinenumberEnd: 591
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - pszPath
        - cchPath
        - pszExt
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:590,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    PathCchFindExtensionW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 578
      functionLinenumberEnd: 580
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - pszPath
        - cchPath
        - ppszExt
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:579,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    PathCchFindExtensionA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 535
      functionLinenumberEnd: 574
      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:538,15'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:538,19'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:539,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:538,27'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:538,31'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:539,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:538,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:539,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:543,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:543,12'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:543,15'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:543,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:543,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:545,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:548,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:548,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:551,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:555,13'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:559,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:561,8'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:573,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:561,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:563,22'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:567,9'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:567,20'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:567,25'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:568,4'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:567,35'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:567,40'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:568,4'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:567,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:568,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:570,4'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    NativePathAllocCombineW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/include/PathAllocCombine.h'
      linkageType:     InternalLinkage
      functionLinenumber: 32
      functionLinenumberEnd: 97
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - pszPathIn
        - pszMore
        - dwFlags
        - ppszPathOut
      BBCount:         32
      ICount:          246
      EdgeCount:       44
      CyclomaticComplexity: 14
      functionsReached:
        - WLog_Print_dbg_tag
        - _wcslen
        - _wcsncat
        - calloc
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:35,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:36,3'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:38,7'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:38,17'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:38,21'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:41,7'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:38,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:39,3'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:41,7'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:41,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:42,3'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:44,7'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:44,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:45,3'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:47,41'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:51,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:52,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:55,7'
              BranchSideFuncs:
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:58,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:60,8'
              BranchSideFuncs:
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:79,15'
              BranchSideFuncs:
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:60,29'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:60,33'
              BranchSideFuncs:
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:76,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:60,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:62,16'
              BranchSideFuncs:
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:76,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:67,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:68,5'
              BranchSideFuncs:
                - _wcsncat
                - _wcsncat
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:70,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:33,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:47,33'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:48,31'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:65,30'
          Dst:             calloc
        - 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:72,4'
          Dst:             _wcsncat
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:82,29'
          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: 103
      functionLinenumberEnd: 165
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - pszPathIn
        - pszMore
        - dwFlags
        - ppszPathOut
      BBCount:         32
      ICount:          236
      EdgeCount:       44
      CyclomaticComplexity: 14
      functionsReached:
        - WLog_Print_dbg_tag
        - calloc
        - snprintf
        - strlen
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:106,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:107,3'
              BranchSideFuncs:
                - strlen
                - strlen
                - calloc
                - snprintf
                - snprintf
                - calloc
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:109,7'
              BranchSideFuncs:
                - strlen
                - strlen
                - calloc
                - snprintf
                - snprintf
                - calloc
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:109,17'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:109,21'
              BranchSideFuncs:
                - strlen
                - strlen
                - calloc
                - snprintf
                - snprintf
                - calloc
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:112,7'
              BranchSideFuncs:
                - strlen
                - strlen
                - calloc
                - snprintf
                - snprintf
                - calloc
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:109,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:110,3'
              BranchSideFuncs:
                - strlen
                - strlen
                - calloc
                - snprintf
                - snprintf
                - calloc
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:112,7'
              BranchSideFuncs:
                - strlen
                - strlen
                - calloc
                - snprintf
                - snprintf
                - calloc
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:112,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:113,3'
              BranchSideFuncs:
                - strlen
                - strlen
                - calloc
                - snprintf
                - snprintf
                - calloc
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:115,7'
              BranchSideFuncs:
                - strlen
                - strlen
                - calloc
                - snprintf
                - snprintf
                - calloc
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:115,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:116,3'
              BranchSideFuncs:
                - strlen
                - strlen
                - calloc
                - snprintf
                - snprintf
                - calloc
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:118,40'
              BranchSideFuncs:
                - strlen
                - strlen
                - calloc
                - snprintf
                - snprintf
                - calloc
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:122,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:123,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:126,7'
              BranchSideFuncs:
                - calloc
                - snprintf
                - snprintf
                - calloc
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:129,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:131,8'
              BranchSideFuncs:
                - calloc
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:147,35'
              BranchSideFuncs:
                - calloc
                - snprintf
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:131,29'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:131,33'
              BranchSideFuncs:
                - calloc
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:144,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:131,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:133,40'
              BranchSideFuncs:
                - calloc
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:144,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:137,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:138,5'
              BranchSideFuncs:
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:140,14'
              BranchSideFuncs:
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:151,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:152,4'
              BranchSideFuncs:
                - snprintf
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:154,7'
              BranchSideFuncs:
                - snprintf
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:154,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:155,14'
              BranchSideFuncs:
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:157,14'
              BranchSideFuncs:
                - snprintf
      Callsites:
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:104,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:118,33'
          Dst:             strlen
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:119,31'
          Dst:             strlen
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:135,22'
          Dst:             calloc
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:140,4'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:149,21'
          Dst:             calloc
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:155,4'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:157,4'
          Dst:             snprintf
    - functionName:    UnixPathAllocCombineW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/include/PathAllocCombine.h'
      linkageType:     InternalLinkage
      functionLinenumber: 32
      functionLinenumberEnd: 97
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - pszPathIn
        - pszMore
        - dwFlags
        - ppszPathOut
      BBCount:         32
      ICount:          246
      EdgeCount:       44
      CyclomaticComplexity: 14
      functionsReached:
        - WLog_Print_dbg_tag
        - _wcslen
        - _wcsncat
        - calloc
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:35,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:36,3'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:38,7'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:38,17'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:38,21'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:41,7'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:38,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:39,3'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:41,7'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:41,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:42,3'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:44,7'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:44,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:45,3'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:47,41'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:51,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:52,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:55,7'
              BranchSideFuncs:
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:58,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:60,8'
              BranchSideFuncs:
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:79,15'
              BranchSideFuncs:
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:60,29'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:60,33'
              BranchSideFuncs:
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:76,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:60,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:62,16'
              BranchSideFuncs:
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:76,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:67,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:68,5'
              BranchSideFuncs:
                - _wcsncat
                - _wcsncat
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:70,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:33,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:47,33'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:48,31'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:65,30'
          Dst:             calloc
        - 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:72,4'
          Dst:             _wcsncat
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:82,29'
          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: 103
      functionLinenumberEnd: 165
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - pszPathIn
        - pszMore
        - dwFlags
        - ppszPathOut
      BBCount:         32
      ICount:          236
      EdgeCount:       44
      CyclomaticComplexity: 14
      functionsReached:
        - WLog_Print_dbg_tag
        - calloc
        - snprintf
        - strlen
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:106,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:107,3'
              BranchSideFuncs:
                - strlen
                - strlen
                - calloc
                - snprintf
                - snprintf
                - calloc
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:109,7'
              BranchSideFuncs:
                - strlen
                - strlen
                - calloc
                - snprintf
                - snprintf
                - calloc
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:109,17'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:109,21'
              BranchSideFuncs:
                - strlen
                - strlen
                - calloc
                - snprintf
                - snprintf
                - calloc
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:112,7'
              BranchSideFuncs:
                - strlen
                - strlen
                - calloc
                - snprintf
                - snprintf
                - calloc
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:109,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:110,3'
              BranchSideFuncs:
                - strlen
                - strlen
                - calloc
                - snprintf
                - snprintf
                - calloc
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:112,7'
              BranchSideFuncs:
                - strlen
                - strlen
                - calloc
                - snprintf
                - snprintf
                - calloc
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:112,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:113,3'
              BranchSideFuncs:
                - strlen
                - strlen
                - calloc
                - snprintf
                - snprintf
                - calloc
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:115,7'
              BranchSideFuncs:
                - strlen
                - strlen
                - calloc
                - snprintf
                - snprintf
                - calloc
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:115,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:116,3'
              BranchSideFuncs:
                - strlen
                - strlen
                - calloc
                - snprintf
                - snprintf
                - calloc
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:118,40'
              BranchSideFuncs:
                - strlen
                - strlen
                - calloc
                - snprintf
                - snprintf
                - calloc
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:122,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:123,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:126,7'
              BranchSideFuncs:
                - calloc
                - snprintf
                - snprintf
                - calloc
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:129,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:131,8'
              BranchSideFuncs:
                - calloc
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:147,35'
              BranchSideFuncs:
                - calloc
                - snprintf
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:131,29'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:131,33'
              BranchSideFuncs:
                - calloc
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:144,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:131,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:133,40'
              BranchSideFuncs:
                - calloc
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:144,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:137,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:138,5'
              BranchSideFuncs:
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:140,14'
              BranchSideFuncs:
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:151,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:152,4'
              BranchSideFuncs:
                - snprintf
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:154,7'
              BranchSideFuncs:
                - snprintf
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:154,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:155,14'
              BranchSideFuncs:
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:157,14'
              BranchSideFuncs:
                - snprintf
      Callsites:
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:104,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:118,33'
          Dst:             strlen
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:119,31'
          Dst:             strlen
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:135,22'
          Dst:             calloc
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:140,4'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:149,21'
          Dst:             calloc
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:155,4'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:157,4'
          Dst:             snprintf
    - functionName:    PathAllocCombineW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/include/PathAllocCombine.h'
      linkageType:     InternalLinkage
      functionLinenumber: 32
      functionLinenumberEnd: 97
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - pszPathIn
        - pszMore
        - dwFlags
        - ppszPathOut
      BBCount:         32
      ICount:          246
      EdgeCount:       44
      CyclomaticComplexity: 14
      functionsReached:
        - WLog_Print_dbg_tag
        - _wcslen
        - _wcsncat
        - calloc
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:35,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:36,3'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:38,7'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:38,17'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:38,21'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:41,7'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:38,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:39,3'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:41,7'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:41,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:42,3'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:44,7'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:44,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:45,3'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:47,41'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:51,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:52,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:55,7'
              BranchSideFuncs:
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:58,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:60,8'
              BranchSideFuncs:
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:79,15'
              BranchSideFuncs:
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:60,29'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:60,33'
              BranchSideFuncs:
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:76,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:60,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:62,16'
              BranchSideFuncs:
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:76,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:67,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:68,5'
              BranchSideFuncs:
                - _wcsncat
                - _wcsncat
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:70,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:33,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:47,33'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:48,31'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:65,30'
          Dst:             calloc
        - 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:72,4'
          Dst:             _wcsncat
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:82,29'
          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: 103
      functionLinenumberEnd: 165
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - pszPathIn
        - pszMore
        - dwFlags
        - ppszPathOut
      BBCount:         32
      ICount:          236
      EdgeCount:       44
      CyclomaticComplexity: 14
      functionsReached:
        - WLog_Print_dbg_tag
        - calloc
        - snprintf
        - strlen
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:106,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:107,3'
              BranchSideFuncs:
                - strlen
                - strlen
                - calloc
                - snprintf
                - snprintf
                - calloc
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:109,7'
              BranchSideFuncs:
                - strlen
                - strlen
                - calloc
                - snprintf
                - snprintf
                - calloc
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:109,17'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:109,21'
              BranchSideFuncs:
                - strlen
                - strlen
                - calloc
                - snprintf
                - snprintf
                - calloc
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:112,7'
              BranchSideFuncs:
                - strlen
                - strlen
                - calloc
                - snprintf
                - snprintf
                - calloc
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:109,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:110,3'
              BranchSideFuncs:
                - strlen
                - strlen
                - calloc
                - snprintf
                - snprintf
                - calloc
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:112,7'
              BranchSideFuncs:
                - strlen
                - strlen
                - calloc
                - snprintf
                - snprintf
                - calloc
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:112,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:113,3'
              BranchSideFuncs:
                - strlen
                - strlen
                - calloc
                - snprintf
                - snprintf
                - calloc
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:115,7'
              BranchSideFuncs:
                - strlen
                - strlen
                - calloc
                - snprintf
                - snprintf
                - calloc
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:115,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:116,3'
              BranchSideFuncs:
                - strlen
                - strlen
                - calloc
                - snprintf
                - snprintf
                - calloc
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:118,40'
              BranchSideFuncs:
                - strlen
                - strlen
                - calloc
                - snprintf
                - snprintf
                - calloc
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:122,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:123,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:126,7'
              BranchSideFuncs:
                - calloc
                - snprintf
                - snprintf
                - calloc
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:129,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:131,8'
              BranchSideFuncs:
                - calloc
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:147,35'
              BranchSideFuncs:
                - calloc
                - snprintf
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:131,29'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:131,33'
              BranchSideFuncs:
                - calloc
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:144,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:131,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:133,40'
              BranchSideFuncs:
                - calloc
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:144,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:137,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:138,5'
              BranchSideFuncs:
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:140,14'
              BranchSideFuncs:
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:151,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:152,4'
              BranchSideFuncs:
                - snprintf
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:154,7'
              BranchSideFuncs:
                - snprintf
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:154,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:155,14'
              BranchSideFuncs:
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:157,14'
              BranchSideFuncs:
                - snprintf
      Callsites:
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:104,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:118,33'
          Dst:             strlen
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:119,31'
          Dst:             strlen
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:135,22'
          Dst:             calloc
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:140,4'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:149,21'
          Dst:             calloc
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:155,4'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:157,4'
          Dst:             snprintf
    - functionName:    PathCchCombineExW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 455
      functionLinenumberEnd: 457
      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:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:456,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    PathCchCombineExA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 447
      functionLinenumberEnd: 449
      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:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:448,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    PathCchCombineW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 435
      functionLinenumberEnd: 437
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pszPathOut
        - cchPathOut
        - pszPathIn
        - pszMore
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:436,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    PathCchCombineA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 428
      functionLinenumberEnd: 430
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pszPathOut
        - cchPathOut
        - pszPathIn
        - pszMore
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:429,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    PathAllocCanonicalizeW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 417
      functionLinenumberEnd: 419
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - pszPathIn
        - dwFlags
        - ppszPathOut
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:418,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    PathAllocCanonicalizeA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 409
      functionLinenumberEnd: 411
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - pszPathIn
        - dwFlags
        - ppszPathOut
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:410,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    PathCchCanonicalizeExW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 397
      functionLinenumberEnd: 399
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - pszPathOut
        - cchPathOut
        - pszPathIn
        - dwFlags
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:398,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    PathCchCanonicalizeExA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 388
      functionLinenumberEnd: 390
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - pszPathOut
        - cchPathOut
        - pszPathIn
        - dwFlags
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:389,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    PathCchCanonicalizeW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 375
      functionLinenumberEnd: 377
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - pszPathOut
        - cchPathOut
        - pszPathIn
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:376,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    PathCchCanonicalizeA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 367
      functionLinenumberEnd: 369
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - pszPathOut
        - cchPathOut
        - pszPathIn
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:368,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    PathCchAppendExW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 356
      functionLinenumberEnd: 358
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - pszPath
        - cchPath
        - pszMore
        - dwFlags
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:357,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    PathCchAppendExA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 349
      functionLinenumberEnd: 351
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - pszPath
        - cchPath
        - pszMore
        - dwFlags
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:350,2'
          Dst:             WLog_Print_dbg_tag
    - 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
        - _wcsncat
      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,18'
              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,18'
              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
        - _wcsncat
      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,18'
              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,18'
              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: 210
      functionLinenumberEnd: 212
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pszPath
        - cchPath
        - ppszEnd
        - pcchRemaining
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:211,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    PathCchRemoveBackslashExA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 202
      functionLinenumberEnd: 204
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pszPath
        - cchPath
        - ppszEnd
        - pcchRemaining
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:203,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    PathCchAddSeparatorExW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/include/PathCchAddSeparatorEx.h'
      linkageType:     InternalLinkage
      functionLinenumber: 14
      functionLinenumberEnd: 34
      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:17,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:18,3'
              BranchSideFuncs:
                - _wcslen
                - HRESULT_FROM_WIN32
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:20,26'
              BranchSideFuncs:
                - _wcslen
                - HRESULT_FROM_WIN32
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:22,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:23,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:25,6'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:25,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:27,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:33,9'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
      Callsites:
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:20,18'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:33,9'
          Dst:             HRESULT_FROM_WIN32
    - functionName:    PathCchAddSeparatorExA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/include/PathCchAddSeparatorEx.h'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 61
      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:44,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:45,3'
              BranchSideFuncs:
                - strlen
                - HRESULT_FROM_WIN32
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:47,25'
              BranchSideFuncs:
                - strlen
                - HRESULT_FROM_WIN32
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:49,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:50,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:52,6'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:52,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:54,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:60,9'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
      Callsites:
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:47,18'
          Dst:             strlen
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:60,9'
          Dst:             HRESULT_FROM_WIN32
    - functionName:    PathCchAddSlashExW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/include/PathCchAddSeparatorEx.h'
      linkageType:     InternalLinkage
      functionLinenumber: 14
      functionLinenumberEnd: 34
      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:17,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:18,3'
              BranchSideFuncs:
                - _wcslen
                - HRESULT_FROM_WIN32
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:20,26'
              BranchSideFuncs:
                - _wcslen
                - HRESULT_FROM_WIN32
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:22,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:23,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:25,6'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:25,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:27,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:33,9'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
      Callsites:
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:20,18'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:33,9'
          Dst:             HRESULT_FROM_WIN32
    - functionName:    PathCchAddSlashExA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/include/PathCchAddSeparatorEx.h'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 61
      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:44,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:45,3'
              BranchSideFuncs:
                - strlen
                - HRESULT_FROM_WIN32
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:47,25'
              BranchSideFuncs:
                - strlen
                - HRESULT_FROM_WIN32
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:49,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:50,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:52,6'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:52,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:54,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:60,9'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
      Callsites:
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:47,18'
          Dst:             strlen
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:60,9'
          Dst:             HRESULT_FROM_WIN32
    - functionName:    PathCchAddBackslashExW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/include/PathCchAddSeparatorEx.h'
      linkageType:     InternalLinkage
      functionLinenumber: 14
      functionLinenumberEnd: 34
      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:17,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:18,3'
              BranchSideFuncs:
                - _wcslen
                - HRESULT_FROM_WIN32
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:20,26'
              BranchSideFuncs:
                - _wcslen
                - HRESULT_FROM_WIN32
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:22,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:23,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:25,6'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:25,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:27,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:33,9'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
      Callsites:
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:20,18'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:33,9'
          Dst:             HRESULT_FROM_WIN32
    - functionName:    PathCchAddBackslashExA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/include/PathCchAddSeparatorEx.h'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 61
      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:44,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:45,3'
              BranchSideFuncs:
                - strlen
                - HRESULT_FROM_WIN32
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:47,25'
              BranchSideFuncs:
                - strlen
                - HRESULT_FROM_WIN32
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:49,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:50,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:52,6'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:52,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:54,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:60,9'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
      Callsites:
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:47,18'
          Dst:             strlen
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:60,9'
          Dst:             HRESULT_FROM_WIN32
    - functionName:    PathCchRemoveBackslashW
      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:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:137,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    PathCchRemoveBackslashA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 130
      functionLinenumberEnd: 132
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - pszPath
        - cchPath
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:131,2'
          Dst:             WLog_Print_dbg_tag
    - 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: 835
      functionLinenumberEnd: 852
      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:836,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:837,3'
              BranchSideFuncs:
                - PathMakePathA
            - BranchSide:      'winpr/libwinpr/path/shell.c:839,23'
              BranchSideFuncs:
                - PathMakePathA
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:839,9'
          Dst:             PathMakePathA
    - functionName:    PathMakePathA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 499
      functionLinenumberEnd: 549
      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:516,12'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:516,16'
              BranchSideFuncs:
                - _strdup
                - free
                - strchr
                - mkdir
                - __errno_location
            - BranchSide:      'winpr/libwinpr/path/shell.c:517,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/shell.c:516,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:517,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/shell.c:521,22'
              BranchSideFuncs:
                - _strdup
                - free
                - strchr
                - mkdir
                - __errno_location
        - Branch String:   'winpr/libwinpr/path/shell.c:521,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:522,3'
              BranchSideFuncs:
                - free
                - strchr
                - mkdir
                - __errno_location
            - BranchSide:      'winpr/libwinpr/path/shell.c:529,17'
              BranchSideFuncs:
                - free
                - strchr
                - mkdir
                - __errno_location
        - Branch String:   'winpr/libwinpr/path/shell.c:529,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:532,19'
              BranchSideFuncs:
                - strchr
                - mkdir
                - free
                - __errno_location
            - BranchSide:      'winpr/libwinpr/path/shell.c:546,7'
              BranchSideFuncs:
                - free
        - Branch String:   'winpr/libwinpr/path/shell.c:532,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:533,5'
              BranchSideFuncs:
                - mkdir
                - free
                - strchr
                - __errno_location
            - BranchSide:      'winpr/libwinpr/path/shell.c:535,13'
              BranchSideFuncs:
                - mkdir
                - free
                - strchr
                - __errno_location
        - Branch String:   'winpr/libwinpr/path/shell.c:535,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:536,8'
              BranchSideFuncs:
                - __errno_location
                - free
                - strchr
                - mkdir
            - BranchSide:      'winpr/libwinpr/path/shell.c:542,7'
              BranchSideFuncs:
                - free
                - strchr
                - mkdir
                - __errno_location
        - Branch String:   'winpr/libwinpr/path/shell.c:536,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:536,17'
              BranchSideFuncs:
                - free
            - BranchSide:      'winpr/libwinpr/path/shell.c:538,12'
              BranchSideFuncs:
                - free
        - Branch String:   'winpr/libwinpr/path/shell.c:542,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:529,2'
              BranchSideFuncs:
                - free
                - strchr
                - mkdir
                - __errno_location
            - BranchSide:      'winpr/libwinpr/path/shell.c:543,9'
              BranchSideFuncs:
                - free
                - strchr
                - mkdir
                - __errno_location
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:505,21'
          Dst:             PathGetSeparatorA
        - Src:             'winpr/libwinpr/path/shell.c:521,14'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/path/shell.c:532,12'
          Dst:             strchr
        - Src:             'winpr/libwinpr/path/shell.c:535,7'
          Dst:             mkdir
        - Src:             'winpr/libwinpr/path/shell.c:536,8'
          Dst:             __errno_location
    - functionName:    winpr_RemoveDirectory
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 786
      functionLinenumberEnd: 795
      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/path/shell.c:790,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:791,30'
              BranchSideFuncs:
                - __errno_location
                - map_posix_err
                - SetLastError
            - BranchSide:      'winpr/libwinpr/path/shell.c:793,3'
              BranchSideFuncs:
                - SetLastError
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:788,12'
          Dst:             rmdir
        - Src:             'winpr/libwinpr/path/shell.c:791,30'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/path/shell.c:791,16'
          Dst:             map_posix_err
        - Src:             'winpr/libwinpr/path/shell.c:791,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/path/shell.c:793,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:    winpr_DeleteFile
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 760
      functionLinenumberEnd: 783
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpFileName
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - unlink
      functionUses:    3
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/shell.c:762,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:763,3'
              BranchSideFuncs:
                - unlink
            - BranchSide:      'winpr/libwinpr/path/shell.c:765,28'
              BranchSideFuncs:
                - unlink
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:765,21'
          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:    winpr_MoveFileEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 706
      functionLinenumberEnd: 757
      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:    4
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/shell.c:712,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:714,7'
              BranchSideFuncs:
                - rename
                - __errno_location
                - map_posix_err
                - SetLastError
                - SetLastError
            - BranchSide:      'winpr/libwinpr/path/shell.c:722,7'
              BranchSideFuncs:
                - rename
                - __errno_location
                - map_posix_err
                - SetLastError
                - SetLastError
        - Branch String:   'winpr/libwinpr/path/shell.c:714,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:716,4'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/path/shell.c:719,2'
              BranchSideFuncs:
                - rename
                - __errno_location
                - map_posix_err
                - SetLastError
        - Branch String:   'winpr/libwinpr/path/shell.c:731,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:732,30'
              BranchSideFuncs:
                - __errno_location
                - map_posix_err
                - SetLastError
            - BranchSide:      'winpr/libwinpr/path/shell.c:734,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:710,8'
          Dst:             stat64
        - Src:             'winpr/libwinpr/path/shell.c:716,4'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/path/shell.c:724,4'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/path/shell.c:729,8'
          Dst:             rename
        - Src:             'winpr/libwinpr/path/shell.c:732,30'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/path/shell.c:732,16'
          Dst:             map_posix_err
        - Src:             'winpr/libwinpr/path/shell.c:732,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:    winpr_MoveFile
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 701
      functionLinenumberEnd: 702
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpExistingFileName
        - lpNewFileName
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_MoveFileEx
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:702,9'
          Dst:             winpr_MoveFileEx
    - functionName:    PathIsDirectoryEmptyW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 684
      functionLinenumberEnd: 695
      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:687,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:688,3'
              BranchSideFuncs:
                - ConvertWCharToUtf8Alloc
                - free
                - PathIsDirectoryEmptyA
            - BranchSide:      'winpr/libwinpr/path/shell.c:689,40'
              BranchSideFuncs:
                - ConvertWCharToUtf8Alloc
                - free
                - PathIsDirectoryEmptyA
        - Branch String:   'winpr/libwinpr/path/shell.c:690,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:691,3'
              BranchSideFuncs:
                - PathIsDirectoryEmptyA
                - free
            - BranchSide:      'winpr/libwinpr/path/shell.c:692,30'
              BranchSideFuncs:
                - PathIsDirectoryEmptyA
                - free
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:689,16'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/path/shell.c:692,8'
          Dst:             PathIsDirectoryEmptyA
    - functionName:    PathIsDirectoryEmptyA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 661
      functionLinenumberEnd: 681
      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:666,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:667,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/shell.c:670,2'
              BranchSideFuncs:
                - readdir64
                - closedir
                - strcmp
                - strcmp
        - Branch String:   'winpr/libwinpr/path/shell.c:670,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:672,14'
              BranchSideFuncs:
                - strcmp
                - strcmp
                - closedir
                - readdir64
            - BranchSide:      'winpr/libwinpr/path/shell.c:679,11'
              BranchSideFuncs:
                - closedir
        - Branch String:   'winpr/libwinpr/path/shell.c:672,36'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:672,46'
              BranchSideFuncs:
                - readdir64
                - closedir
                - strcmp
                - strcmp
            - BranchSide:      'winpr/libwinpr/path/shell.c:673,4'
              BranchSideFuncs:
                - readdir64
                - closedir
                - strcmp
                - strcmp
        - Branch String:   'winpr/libwinpr/path/shell.c:672,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:673,4'
              BranchSideFuncs:
                - readdir64
                - closedir
                - strcmp
                - strcmp
            - BranchSide:      'winpr/libwinpr/path/shell.c:675,9'
              BranchSideFuncs:
                - closedir
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:664,13'
          Dst:             opendir
        - Src:             'winpr/libwinpr/path/shell.c:670,15'
          Dst:             readdir64
        - Src:             'winpr/libwinpr/path/shell.c:672,7'
          Dst:             strcmp
        - Src:             'winpr/libwinpr/path/shell.c:672,39'
          Dst:             strcmp
        - Src:             'winpr/libwinpr/path/shell.c:679,2'
          Dst:             closedir
    - functionName:    winpr_PathFileExists
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 815
      functionLinenumberEnd: 832
      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:816,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:817,3'
              BranchSideFuncs:
                - PathFileExistsA
            - BranchSide:      'winpr/libwinpr/path/shell.c:819,25'
              BranchSideFuncs:
                - PathFileExistsA
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:819,9'
          Dst:             PathFileExistsA
    - functionName:    PathFileExistsA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 634
      functionLinenumberEnd: 641
      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:637,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:638,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/shell.c:640,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:637,6'
          Dst:             stat64
    - functionName:    PathFileExistsW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 644
      functionLinenumberEnd: 657
      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:648,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:649,3'
              BranchSideFuncs:
                - ConvertWCharToUtf8Alloc
                - free
                - winpr_PathFileExists
            - BranchSide:      'winpr/libwinpr/path/shell.c:650,40'
              BranchSideFuncs:
                - ConvertWCharToUtf8Alloc
                - free
                - winpr_PathFileExists
        - Branch String:   'winpr/libwinpr/path/shell.c:651,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:652,3'
              BranchSideFuncs:
                - winpr_PathFileExists
                - free
            - BranchSide:      'winpr/libwinpr/path/shell.c:654,29'
              BranchSideFuncs:
                - winpr_PathFileExists
                - free
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:650,16'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/path/shell.c:654,8'
          Dst:             winpr_PathFileExists
    - functionName:    PathIsRelativeW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 617
      functionLinenumberEnd: 630
      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:621,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:622,3'
              BranchSideFuncs:
                - ConvertWCharToUtf8Alloc
                - free
                - PathIsRelativeA
            - BranchSide:      'winpr/libwinpr/path/shell.c:624,40'
              BranchSideFuncs:
                - ConvertWCharToUtf8Alloc
                - free
                - PathIsRelativeA
        - Branch String:   'winpr/libwinpr/path/shell.c:625,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:626,3'
              BranchSideFuncs:
                - PathIsRelativeA
                - free
            - BranchSide:      'winpr/libwinpr/path/shell.c:627,24'
              BranchSideFuncs:
                - PathIsRelativeA
                - free
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:624,16'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/path/shell.c:627,8'
          Dst:             PathIsRelativeA
    - functionName:    PathIsRelativeA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 609
      functionLinenumberEnd: 614
      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:610,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:611,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/shell.c:613,9'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    PathMakePathW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 552
      functionLinenumberEnd: 604
      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:570,12'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:570,16'
              BranchSideFuncs:
                - ConvertWCharToUtf8Alloc
                - free
                - strchr
                - mkdir
                - __errno_location
            - BranchSide:      'winpr/libwinpr/path/shell.c:571,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/shell.c:570,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:571,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/shell.c:575,32'
              BranchSideFuncs:
                - ConvertWCharToUtf8Alloc
                - free
                - strchr
                - mkdir
                - __errno_location
        - Branch String:   'winpr/libwinpr/path/shell.c:576,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:577,3'
              BranchSideFuncs:
                - free
                - strchr
                - mkdir
                - __errno_location
            - BranchSide:      'winpr/libwinpr/path/shell.c:584,17'
              BranchSideFuncs:
                - free
                - strchr
                - mkdir
                - __errno_location
        - Branch String:   'winpr/libwinpr/path/shell.c:584,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:587,19'
              BranchSideFuncs:
                - strchr
                - mkdir
                - free
                - __errno_location
            - BranchSide:      'winpr/libwinpr/path/shell.c:601,7'
              BranchSideFuncs:
                - free
        - Branch String:   'winpr/libwinpr/path/shell.c:587,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:588,5'
              BranchSideFuncs:
                - mkdir
                - free
                - strchr
                - __errno_location
            - BranchSide:      'winpr/libwinpr/path/shell.c:590,13'
              BranchSideFuncs:
                - mkdir
                - free
                - strchr
                - __errno_location
        - Branch String:   'winpr/libwinpr/path/shell.c:590,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:591,8'
              BranchSideFuncs:
                - __errno_location
                - free
                - strchr
                - mkdir
            - BranchSide:      'winpr/libwinpr/path/shell.c:597,7'
              BranchSideFuncs:
                - free
                - strchr
                - mkdir
                - __errno_location
        - Branch String:   'winpr/libwinpr/path/shell.c:591,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:591,17'
              BranchSideFuncs:
                - free
            - BranchSide:      'winpr/libwinpr/path/shell.c:593,12'
              BranchSideFuncs:
                - free
        - Branch String:   'winpr/libwinpr/path/shell.c:597,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:584,2'
              BranchSideFuncs:
                - free
                - strchr
                - mkdir
                - __errno_location
            - BranchSide:      'winpr/libwinpr/path/shell.c:598,9'
              BranchSideFuncs:
                - free
                - strchr
                - mkdir
                - __errno_location
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:558,23'
          Dst:             PathGetSeparatorW
        - Src:             'winpr/libwinpr/path/shell.c:559,21'
          Dst:             PathGetSeparatorA
        - Src:             'winpr/libwinpr/path/shell.c:575,8'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/path/shell.c:587,12'
          Dst:             strchr
        - Src:             'winpr/libwinpr/path/shell.c:590,7'
          Dst:             mkdir
        - Src:             'winpr/libwinpr/path/shell.c:591,8'
          Dst:             __errno_location
    - functionName:    GetEnvironmentSubPath
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 434
      functionLinenumberEnd: 445
      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:439,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:440,3'
              BranchSideFuncs:
                - GetCombinedPath
                - free
            - BranchSide:      'winpr/libwinpr/path/shell.c:442,28'
              BranchSideFuncs:
                - GetCombinedPath
                - free
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:437,8'
          Dst:             GetEnvironmentPath
        - Src:             'winpr/libwinpr/path/shell.c:442,12'
          Dst:             GetCombinedPath
    - functionName:    GetEnvironmentPath
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 408
      functionLinenumberEnd: 431
      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:414,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:416,23'
              BranchSideFuncs:
                - malloc
                - GetEnvironmentVariableX
                - free
            - BranchSide:      'winpr/libwinpr/path/shell.c:430,9'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/shell.c:418,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:419,4'
              BranchSideFuncs:
                - GetEnvironmentVariableX
                - free
            - BranchSide:      'winpr/libwinpr/path/shell.c:421,37'
              BranchSideFuncs:
                - GetEnvironmentVariableX
                - free
        - Branch String:   'winpr/libwinpr/path/shell.c:423,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:425,9'
              BranchSideFuncs:
                - free
            - BranchSide:      'winpr/libwinpr/path/shell.c:428,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:412,10'
          Dst:             GetEnvironmentVariableX
        - Src:             'winpr/libwinpr/path/shell.c:421,13'
          Dst:             GetEnvironmentVariableX
    - functionName:    GetCombinedPath
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 448
      functionLinenumberEnd: 496
      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:    9
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/shell.c:456,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:457,27'
              BranchSideFuncs:
                - strlen
                - calloc
                - free
                - free
                - PathCchConvertStyleA
                - _strdup
                - PathCchConvertStyleA
                - NativePathCchAppendA
                - free
                - strlen
            - BranchSide:      'winpr/libwinpr/path/shell.c:459,6'
              BranchSideFuncs:
                - calloc
                - free
                - free
                - PathCchConvertStyleA
                - _strdup
                - PathCchConvertStyleA
                - NativePathCchAppendA
                - free
                - strlen
        - Branch String:   'winpr/libwinpr/path/shell.c:459,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:460,26'
              BranchSideFuncs:
                - strlen
                - calloc
                - free
                - free
                - PathCchConvertStyleA
                - _strdup
                - PathCchConvertStyleA
                - NativePathCchAppendA
                - free
            - BranchSide:      'winpr/libwinpr/path/shell.c:462,11'
              BranchSideFuncs:
                - calloc
                - free
                - free
                - PathCchConvertStyleA
                - _strdup
                - PathCchConvertStyleA
                - NativePathCchAppendA
                - free
        - Branch String:   'winpr/libwinpr/path/shell.c:465,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:466,3'
              BranchSideFuncs:
                - PathCchConvertStyleA
                - _strdup
                - free
                - free
                - PathCchConvertStyleA
                - NativePathCchAppendA
                - free
            - BranchSide:      'winpr/libwinpr/path/shell.c:468,6'
              BranchSideFuncs:
                - PathCchConvertStyleA
                - _strdup
                - free
                - free
                - PathCchConvertStyleA
                - NativePathCchAppendA
                - free
        - Branch String:   'winpr/libwinpr/path/shell.c:468,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:469,3'
              BranchSideFuncs:
                - PathCchConvertStyleA
                - _strdup
                - free
                - free
                - PathCchConvertStyleA
                - NativePathCchAppendA
                - free
            - BranchSide:      'winpr/libwinpr/path/shell.c:471,6'
              BranchSideFuncs:
                - PathCchConvertStyleA
                - _strdup
                - free
                - free
                - PathCchConvertStyleA
                - NativePathCchAppendA
                - free
        - Branch String:   'winpr/libwinpr/path/shell.c:471,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:472,3'
              BranchSideFuncs:
                - free
                - free
            - BranchSide:      'winpr/libwinpr/path/shell.c:474,7'
              BranchSideFuncs:
                - _strdup
                - free
                - free
                - PathCchConvertStyleA
                - NativePathCchAppendA
                - free
        - Branch String:   'winpr/libwinpr/path/shell.c:474,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:475,10'
              BranchSideFuncs:
                - _strdup
                - free
                - free
                - PathCchConvertStyleA
                - NativePathCchAppendA
                - free
            - BranchSide:      'winpr/libwinpr/path/shell.c:477,23'
              BranchSideFuncs:
                - _strdup
                - free
                - free
                - PathCchConvertStyleA
                - NativePathCchAppendA
                - free
        - Branch String:   'winpr/libwinpr/path/shell.c:479,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:480,3'
              BranchSideFuncs:
                - PathCchConvertStyleA
                - NativePathCchAppendA
                - free
                - free
                - free
            - BranchSide:      'winpr/libwinpr/path/shell.c:482,6'
              BranchSideFuncs:
                - PathCchConvertStyleA
                - NativePathCchAppendA
                - free
                - free
                - free
        - Branch String:   'winpr/libwinpr/path/shell.c:482,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:483,3'
              BranchSideFuncs:
                - free
                - free
            - BranchSide:      'winpr/libwinpr/path/shell.c:485,32'
              BranchSideFuncs:
                - NativePathCchAppendA
                - free
                - free
                - free
        - Branch String:   'winpr/libwinpr/path/shell.c:486,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:487,3'
              BranchSideFuncs:
                - free
                - free
            - BranchSide:      'winpr/libwinpr/path/shell.c:489,7'
              BranchSideFuncs:
                - free
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:457,20'
          Dst:             strlen
        - Src:             'winpr/libwinpr/path/shell.c:460,19'
          Dst:             strlen
        - Src:             'winpr/libwinpr/path/shell.c:463,16'
          Dst:             calloc
        - Src:             'winpr/libwinpr/path/shell.c:471,6'
          Dst:             PathCchConvertStyleA
        - Src:             'winpr/libwinpr/path/shell.c:477,15'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/path/shell.c:482,6'
          Dst:             PathCchConvertStyleA
        - Src:             'winpr/libwinpr/path/shell.c:485,11'
          Dst:             NativePathCchAppendA
    - functionName:    GetKnownSubPath
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 397
      functionLinenumberEnd: 405
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - id
        - path
      BBCount:         6
      ICount:          46
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - GetCombinedPath
        - GetKnownPath
      functionUses:    4
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/shell.c:399,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:400,3'
              BranchSideFuncs:
                - GetCombinedPath
                - free
            - BranchSide:      'winpr/libwinpr/path/shell.c:402,34'
              BranchSideFuncs:
                - GetCombinedPath
                - free
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:398,20'
          Dst:             GetKnownPath
        - Src:             'winpr/libwinpr/path/shell.c:402,18'
          Dst:             GetCombinedPath
    - functionName:    GetKnownPath
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 352
      functionLinenumberEnd: 393
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - id
      BBCount:         36
      ICount:          147
      EdgeCount:       39
      CyclomaticComplexity: 5
      functionsReached:
        - GetKnownPathIdString
        - GetPath_HOME
        - GetPath_SYSTEM_CONFIG_HOME
        - GetPath_TEMP
        - GetPath_XDG_CACHE_HOME
        - GetPath_XDG_CONFIG_HOME
        - GetPath_XDG_DATA_HOME
        - GetPath_XDG_RUNTIME_DIR
        - WLog_Print_dbg_tag
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/shell.c:355,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:358,11'
              BranchSideFuncs:
                - GetPath_HOME
                - winpr_int_assert
                - winpr_int_assert
                - GetKnownPathIdString
                - WLog_Print_dbg_tag.3394
            - BranchSide:      'winpr/libwinpr/path/shell.c:362,11'
              BranchSideFuncs:
                - GetPath_TEMP
                - winpr_int_assert
                - winpr_int_assert
                - GetKnownPathIdString
                - WLog_Print_dbg_tag.3394
            - BranchSide:      'winpr/libwinpr/path/shell.c:366,11'
              BranchSideFuncs:
                - GetPath_XDG_DATA_HOME
                - winpr_int_assert
                - winpr_int_assert
                - GetKnownPathIdString
                - WLog_Print_dbg_tag.3394
            - BranchSide:      'winpr/libwinpr/path/shell.c:370,11'
              BranchSideFuncs:
                - GetPath_XDG_CONFIG_HOME
                - winpr_int_assert
                - winpr_int_assert
                - GetKnownPathIdString
                - WLog_Print_dbg_tag.3394
            - BranchSide:      'winpr/libwinpr/path/shell.c:374,11'
              BranchSideFuncs:
                - GetPath_XDG_CACHE_HOME
                - winpr_int_assert
                - winpr_int_assert
                - GetKnownPathIdString
                - WLog_Print_dbg_tag.3394
            - BranchSide:      'winpr/libwinpr/path/shell.c:378,11'
              BranchSideFuncs:
                - GetPath_XDG_RUNTIME_DIR
                - winpr_int_assert
                - winpr_int_assert
                - GetKnownPathIdString
                - WLog_Print_dbg_tag.3394
            - BranchSide:      'winpr/libwinpr/path/shell.c:382,11'
              BranchSideFuncs:
                - GetPath_SYSTEM_CONFIG_HOME
                - winpr_int_assert
                - winpr_int_assert
                - GetKnownPathIdString
                - WLog_Print_dbg_tag.3394
            - BranchSide:      'winpr/libwinpr/path/shell.c:386,9'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - GetKnownPathIdString
                - WLog_Print_dbg_tag.3394
        - Branch String:   'winpr/libwinpr/path/shell.c:390,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:390,6'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/shell.c:391,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - GetKnownPathIdString
                - WLog_Print_dbg_tag.3394
        - Branch String:   'winpr/libwinpr/path/shell.c:391,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:391,3'
              BranchSideFuncs:
                - winpr_int_assert
                - GetKnownPathIdString
                - WLog_Print_dbg_tag.3394
            - BranchSide:      'winpr/libwinpr/path/shell.c:391,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/path/shell.c:391,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:391,3'
              BranchSideFuncs:
                - winpr_int_assert
                - GetKnownPathIdString
                - WLog_Print_dbg_tag.3394
            - BranchSide:      'winpr/libwinpr/path/shell.c:391,3'
              BranchSideFuncs:
                - winpr_int_assert
                - GetKnownPathIdString
                - WLog_Print_dbg_tag.3394
        - Branch String:   'winpr/libwinpr/path/shell.c:391,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:391,3'
              BranchSideFuncs:
                - GetKnownPathIdString
                - WLog_Print_dbg_tag.3394
            - BranchSide:      'winpr/libwinpr/path/shell.c:391,3'
              BranchSideFuncs:
                - winpr_int_assert
                - GetKnownPathIdString
                - WLog_Print_dbg_tag.3394
        - Branch String:   'winpr/libwinpr/path/shell.c:391,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:391,3'
              BranchSideFuncs:
                - winpr_int_assert
                - GetKnownPathIdString
                - WLog_Print_dbg_tag.3394
            - BranchSide:      'winpr/libwinpr/path/shell.c:391,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/path/shell.c:391,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:391,3'
              BranchSideFuncs:
                - GetKnownPathIdString
                - WLog_Print_dbg_tag.3394
            - BranchSide:      'winpr/libwinpr/path/shell.c:391,3'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:358,11'
          Dst:             GetPath_HOME
        - Src:             'winpr/libwinpr/path/shell.c:362,11'
          Dst:             GetPath_TEMP
        - Src:             'winpr/libwinpr/path/shell.c:366,11'
          Dst:             GetPath_XDG_DATA_HOME
        - Src:             'winpr/libwinpr/path/shell.c:370,11'
          Dst:             GetPath_XDG_CONFIG_HOME
        - Src:             'winpr/libwinpr/path/shell.c:374,11'
          Dst:             GetPath_XDG_CACHE_HOME
        - Src:             'winpr/libwinpr/path/shell.c:378,11'
          Dst:             GetPath_XDG_RUNTIME_DIR
        - Src:             'winpr/libwinpr/path/shell.c:382,11'
          Dst:             GetPath_SYSTEM_CONFIG_HOME
        - Src:             'winpr/libwinpr/path/shell.c:391,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/path/shell.c:391,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/path/shell.c:391,3'
          Dst:             GetKnownPathIdString
        - Src:             'winpr/libwinpr/path/shell.c:391,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    GetPath_HOME
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 114
      functionLinenumberEnd: 123
      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:115,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:115,8'
              BranchSideFuncs:
                - GetEnvAlloc
            - BranchSide:      'winpr/libwinpr/path/shell.c:115,8'
              BranchSideFuncs:
                - GetEnvAlloc
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:121,9'
          Dst:             GetEnvAlloc
    - functionName:    GetPath_TEMP
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 127
      functionLinenumberEnd: 140
      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:128,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:128,8'
              BranchSideFuncs:
                - GetEnvAlloc
                - _strdup
            - BranchSide:      'winpr/libwinpr/path/shell.c:128,8'
              BranchSideFuncs:
                - GetEnvAlloc
                - _strdup
        - Branch String:   'winpr/libwinpr/path/shell.c:136,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:136,6'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/shell.c:137,10'
              BranchSideFuncs:
                - _strdup
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:134,9'
          Dst:             GetEnvAlloc
        - Src:             'winpr/libwinpr/path/shell.c:137,10'
          Dst:             _strdup
    - functionName:    GetPath_XDG_DATA_HOME
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 144
      functionLinenumberEnd: 182
      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:145,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:145,8'
              BranchSideFuncs:
                - GetEnvAlloc
                - GetPath_HOME
                - strlen
                - malloc
                - free
                - snprintf
                - free
            - BranchSide:      'winpr/libwinpr/path/shell.c:145,8'
              BranchSideFuncs:
                - GetEnvAlloc
                - GetPath_HOME
                - strlen
                - malloc
                - free
                - snprintf
                - free
        - Branch String:   'winpr/libwinpr/path/shell.c:161,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:162,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/shell.c:164,9'
              BranchSideFuncs:
                - GetPath_HOME
                - strlen
                - malloc
                - free
                - snprintf
                - free
        - Branch String:   'winpr/libwinpr/path/shell.c:166,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:167,3'
              BranchSideFuncs:
                - strlen
                - malloc
                - free
                - snprintf
                - free
            - BranchSide:      'winpr/libwinpr/path/shell.c:169,16'
              BranchSideFuncs:
                - strlen
                - malloc
                - free
                - snprintf
                - free
        - Branch String:   'winpr/libwinpr/path/shell.c:172,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:174,8'
              BranchSideFuncs:
                - snprintf
                - free
            - BranchSide:      'winpr/libwinpr/path/shell.c:178,18'
              BranchSideFuncs:
                - snprintf
                - free
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:159,9'
          Dst:             GetEnvAlloc
        - Src:             'winpr/libwinpr/path/shell.c:164,9'
          Dst:             GetPath_HOME
        - Src:             'winpr/libwinpr/path/shell.c:169,9'
          Dst:             strlen
        - Src:             'winpr/libwinpr/path/shell.c:178,8'
          Dst:             snprintf
    - functionName:    GetPath_XDG_CONFIG_HOME
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 185
      functionLinenumberEnd: 230
      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:186,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:186,8'
              BranchSideFuncs:
                - GetEnvAlloc
                - GetPath_HOME
                - GetPath_TEMP
                - strlen
                - malloc
                - free
                - snprintf
                - free
            - BranchSide:      'winpr/libwinpr/path/shell.c:186,8'
              BranchSideFuncs:
                - GetEnvAlloc
                - GetPath_HOME
                - GetPath_TEMP
                - strlen
                - malloc
                - free
                - snprintf
                - free
        - Branch String:   'winpr/libwinpr/path/shell.c:206,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:207,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/shell.c:209,9'
              BranchSideFuncs:
                - GetPath_HOME
                - GetPath_TEMP
                - strlen
                - malloc
                - free
                - snprintf
                - free
        - Branch String:   'winpr/libwinpr/path/shell.c:211,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:212,10'
              BranchSideFuncs:
                - strlen
                - malloc
                - free
                - snprintf
                - free
            - BranchSide:      'winpr/libwinpr/path/shell.c:214,7'
              BranchSideFuncs:
                - strlen
                - malloc
                - free
                - snprintf
                - free
        - Branch String:   'winpr/libwinpr/path/shell.c:214,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:215,3'
              BranchSideFuncs:
                - strlen
                - malloc
                - free
                - snprintf
                - free
            - BranchSide:      'winpr/libwinpr/path/shell.c:217,16'
              BranchSideFuncs:
                - strlen
                - malloc
                - free
                - snprintf
                - free
        - Branch String:   'winpr/libwinpr/path/shell.c:220,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:222,8'
              BranchSideFuncs:
                - snprintf
                - free
            - BranchSide:      'winpr/libwinpr/path/shell.c:226,18'
              BranchSideFuncs:
                - snprintf
                - free
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:204,9'
          Dst:             GetEnvAlloc
        - Src:             'winpr/libwinpr/path/shell.c:209,9'
          Dst:             GetPath_HOME
        - Src:             'winpr/libwinpr/path/shell.c:212,10'
          Dst:             GetPath_TEMP
        - Src:             'winpr/libwinpr/path/shell.c:217,9'
          Dst:             strlen
        - Src:             'winpr/libwinpr/path/shell.c:226,8'
          Dst:             snprintf
    - functionName:    GetPath_XDG_CACHE_HOME
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 248
      functionLinenumberEnd: 300
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         10
      ICount:          72
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - GetEnvAlloc
        - GetPath_HOME
        - snprintf
        - strlen
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/shell.c:249,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:249,8'
              BranchSideFuncs:
                - GetEnvAlloc
                - GetPath_HOME
                - strlen
                - malloc
                - free
                - snprintf
                - free
            - BranchSide:      'winpr/libwinpr/path/shell.c:249,8'
              BranchSideFuncs:
                - GetEnvAlloc
                - GetPath_HOME
                - strlen
                - malloc
                - free
                - snprintf
                - free
        - Branch String:   'winpr/libwinpr/path/shell.c:279,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:280,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/shell.c:282,15'
              BranchSideFuncs:
                - GetPath_HOME
                - strlen
                - malloc
                - free
                - snprintf
                - free
        - Branch String:   'winpr/libwinpr/path/shell.c:284,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:285,3'
              BranchSideFuncs:
                - strlen
                - malloc
                - free
                - snprintf
                - free
            - BranchSide:      'winpr/libwinpr/path/shell.c:287,16'
              BranchSideFuncs:
                - strlen
                - malloc
                - free
                - snprintf
                - free
        - Branch String:   'winpr/libwinpr/path/shell.c:290,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:292,8'
              BranchSideFuncs:
                - snprintf
                - free
            - BranchSide:      'winpr/libwinpr/path/shell.c:296,18'
              BranchSideFuncs:
                - snprintf
                - free
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:277,9'
          Dst:             GetEnvAlloc
        - Src:             'winpr/libwinpr/path/shell.c:282,15'
          Dst:             GetPath_HOME
        - Src:             'winpr/libwinpr/path/shell.c:287,9'
          Dst:             strlen
        - Src:             'winpr/libwinpr/path/shell.c:296,8'
          Dst:             snprintf
    - functionName:    GetPath_XDG_RUNTIME_DIR
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 303
      functionLinenumberEnd: 349
      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:304,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:304,8'
              BranchSideFuncs:
                - GetEnvAlloc
                - GetPath_TEMP
            - BranchSide:      'winpr/libwinpr/path/shell.c:304,8'
              BranchSideFuncs:
                - GetEnvAlloc
                - GetPath_TEMP
        - Branch String:   'winpr/libwinpr/path/shell.c:344,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:345,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/shell.c:347,9'
              BranchSideFuncs:
                - GetPath_TEMP
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:341,9'
          Dst:             GetEnvAlloc
        - Src:             'winpr/libwinpr/path/shell.c:347,9'
          Dst:             GetPath_TEMP
    - functionName:    GetPath_SYSTEM_CONFIG_HOME
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 233
      functionLinenumberEnd: 244
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - _strdup
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/shell.c:234,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:234,8'
              BranchSideFuncs:
                - _strdup
            - BranchSide:      'winpr/libwinpr/path/shell.c:234,8'
              BranchSideFuncs:
                - _strdup
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:242,9'
          Dst:             _strdup
    - functionName:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 216
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - tag
        - log_level
        - line
        - file
        - fkt
      BBCount:         9
      ICount:          67
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintMessageVA
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/wlog.h:206,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/wlog.h:207,30'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessageVA
            - BranchSide:      'winpr/include/winpr/wlog.h:209,26'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessageVA
        - Branch String:   'winpr/include/winpr/wlog.h:209,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/wlog.h:209,7'
              BranchSideFuncs:
                - WLog_PrintMessageVA
            - BranchSide:      'winpr/include/winpr/wlog.h:212,4'
              BranchSideFuncs:
                - WLog_PrintMessageVA
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:207,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:209,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:213,4'
          Dst:             WLog_PrintMessageVA
    - functionName:    GetEnvAlloc
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 87
      functionLinenumberEnd: 111
      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:94,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:96,16'
              BranchSideFuncs:
                - malloc
                - GetEnvironmentVariableX
                - free
            - BranchSide:      'winpr/libwinpr/path/shell.c:110,9'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/shell.c:98,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:99,4'
              BranchSideFuncs:
                - GetEnvironmentVariableX
                - free
            - BranchSide:      'winpr/libwinpr/path/shell.c:101,37'
              BranchSideFuncs:
                - GetEnvironmentVariableX
                - free
        - Branch String:   'winpr/libwinpr/path/shell.c:103,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:105,9'
              BranchSideFuncs:
                - free
            - BranchSide:      'winpr/libwinpr/path/shell.c:108,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:92,10'
          Dst:             GetEnvironmentVariableX
        - Src:             'winpr/libwinpr/path/shell.c:101,13'
          Dst:             GetEnvironmentVariableX
    - functionName:    ArrayList_Free
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/ArrayList.c'
      linkageType:     InternalLinkage
      functionLinenumber: 605
      functionLinenumberEnd: 613
      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:606,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:607,3'
              BranchSideFuncs:
                - ArrayList_Clear
                - DeleteCriticalSection
                - free
                - free
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:609,18'
              BranchSideFuncs:
                - ArrayList_Clear
                - DeleteCriticalSection
                - free
                - free
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:609,2'
          Dst:             ArrayList_Clear
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:610,2'
          Dst:             DeleteCriticalSection
    - functionName:    ArrayList_Clear
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/ArrayList.c'
      linkageType:     InternalLinkage
      functionLinenumber: 259
      functionLinenumberEnd: 274
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - arrayList
      BBCount:         16
      ICount:          88
      EdgeCount:       18
      CyclomaticComplexity: 4
      functionsReached:
        - ArrayList_Lock_Conditional
        - ArrayList_Unlock_Conditional
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:260,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:260,2'
              BranchSideFuncs:
                - ArrayList_Lock_Conditional
                - ArrayList_Unlock_Conditional
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:260,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:263,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:265,7'
              BranchSideFuncs:
                - ArrayList_Unlock_Conditional
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:271,2'
              BranchSideFuncs:
                - ArrayList_Unlock_Conditional
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:265,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:266,4'
              BranchSideFuncs:
                - ArrayList_Unlock_Conditional
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:268,3'
              BranchSideFuncs:
                - ArrayList_Unlock_Conditional
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:260,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:261,2'
          Dst:             ArrayList_Lock_Conditional
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:273,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:         12
      ICount:          43
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - EnterCriticalSection
        - winpr_int_assert
      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:121,2'
              BranchSideFuncs:
                - winpr_int_assert
        - 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:             winpr_int_assert
        - 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:         12
      ICount:          43
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - LeaveCriticalSection
        - winpr_int_assert
      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:138,2'
              BranchSideFuncs:
                - winpr_int_assert
        - 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:             winpr_int_assert
        - 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: 525
      functionLinenumberEnd: 526
      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: 577
      functionLinenumberEnd: 602
      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:582,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:583,3'
              BranchSideFuncs:
                - ArrayList_Object
                - ArrayList_Free
                - ArrayList_EnsureCapacity
                - InitializeCriticalSectionAndSpinCount
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:585,28'
              BranchSideFuncs:
                - ArrayList_Object
                - ArrayList_Free
                - ArrayList_EnsureCapacity
                - InitializeCriticalSectionAndSpinCount
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:588,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:589,3'
              BranchSideFuncs:
                - ArrayList_EnsureCapacity
                - ArrayList_Free
                - InitializeCriticalSectionAndSpinCount
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:590,2'
              BranchSideFuncs:
                - ArrayList_EnsureCapacity
                - ArrayList_Free
                - InitializeCriticalSectionAndSpinCount
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:591,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:592,3'
              BranchSideFuncs:
                - InitializeCriticalSectionAndSpinCount
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:594,41'
              BranchSideFuncs:
                - InitializeCriticalSectionAndSpinCount
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:580,27'
          Dst:             calloc
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:587,8'
          Dst:             ArrayList_Object
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:591,7'
          Dst:             ArrayList_EnsureCapacity
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:594,2'
          Dst:             InitializeCriticalSectionAndSpinCount
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:599,2'
          Dst:             ArrayList_Free
    - functionName:    ArrayList_Object
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/ArrayList.c'
      linkageType:     InternalLinkage
      functionLinenumber: 530
      functionLinenumberEnd: 532
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - arrayList
      BBCount:         9
      ICount:          31
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:531,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:531,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:531,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:531,2'
          Dst:             winpr_int_assert
    - 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:         24
      ICount:          124
      EdgeCount:       27
      CyclomaticComplexity: 5
      functionsReached:
        - realloc
        - winpr_int_assert
      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:
                - winpr_int_assert
                - realloc
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:200,2'
              BranchSideFuncs:
                - winpr_int_assert
        - 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:201,2'
              BranchSideFuncs:
                - winpr_int_assert
        - 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,37'
              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:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:201,2'
          Dst:             winpr_int_assert
        - 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: 547
      functionLinenumberEnd: 569
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - arrayList
        - fkt
        - ap
      BBCount:         22
      ICount:          112
      EdgeCount:       24
      CyclomaticComplexity: 4
      functionsReached:
        - ArrayList_Count
        - ArrayList_GetItem
        - ArrayList_Lock_Conditional
        - ArrayList_Unlock_Conditional
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:551,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:551,2'
              BranchSideFuncs:
                - winpr_int_assert
                - ArrayList_Lock_Conditional
                - ArrayList_Count
                - ArrayList_Unlock_Conditional
                - ArrayList_GetItem
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:551,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:552,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:552,2'
              BranchSideFuncs:
                - ArrayList_Lock_Conditional
                - ArrayList_Count
                - ArrayList_Unlock_Conditional
                - ArrayList_GetItem
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:552,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:556,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:558,8'
              BranchSideFuncs:
                - ArrayList_GetItem
                - ArrayList_Unlock_Conditional
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:566,5'
              BranchSideFuncs:
                - ArrayList_Unlock_Conditional
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:563,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:564,4'
              BranchSideFuncs:
                - ArrayList_Unlock_Conditional
                - ArrayList_GetItem
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:565,2'
              BranchSideFuncs:
                - ArrayList_Unlock_Conditional
                - ArrayList_GetItem
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:551,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:552,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:554,2'
          Dst:             ArrayList_Lock_Conditional
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:555,17'
          Dst:             ArrayList_Count
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:559,15'
          Dst:             ArrayList_GetItem
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:568,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:         9
      ICount:          32
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      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:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:70,2'
          Dst:             winpr_int_assert
    - 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:         12
      ICount:          55
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_int_assert
      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:157,2'
              BranchSideFuncs:
                - winpr_int_assert
        - 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:             winpr_int_assert
    - functionName:    ArrayList_ForEach
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/ArrayList.c'
      linkageType:     InternalLinkage
      functionLinenumber: 536
      functionLinenumberEnd: 543
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - arrayList
        - fkt
      BBCount:         3
      ICount:          33
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ArrayList_ForEachAP
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:540,7'
          Dst:             ArrayList_ForEachAP
    - functionName:    ArrayList_LastIndexOf
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/ArrayList.c'
      linkageType:     InternalLinkage
      functionLinenumber: 487
      functionLinenumberEnd: 521
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - arrayList
        - obj
        - startIndex
        - count
      BBCount:         31
      ICount:          157
      EdgeCount:       36
      CyclomaticComplexity: 7
      functionsReached:
        - ArrayList_Lock_Conditional
        - ArrayList_Unlock_Conditional
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:492,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:492,2'
              BranchSideFuncs:
                - ArrayList_Lock_Conditional
                - ArrayList_Unlock_Conditional
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:492,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:496,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:497,10'
              BranchSideFuncs:
                - ArrayList_Unlock_Conditional
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:499,11'
              BranchSideFuncs:
                - ArrayList_Unlock_Conditional
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:500,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:502,3'
              BranchSideFuncs:
                - winpr_int_assert
                - ArrayList_Unlock_Conditional
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:506,18'
              BranchSideFuncs:
                - ArrayList_Unlock_Conditional
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:502,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:502,3'
              BranchSideFuncs:
                - ArrayList_Unlock_Conditional
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:502,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:507,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:509,7'
              BranchSideFuncs:
                - ArrayList_Unlock_Conditional
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:516,7'
              BranchSideFuncs:
                - ArrayList_Unlock_Conditional
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:509,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:511,10'
              BranchSideFuncs:
                - ArrayList_Unlock_Conditional
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:514,2'
              BranchSideFuncs:
                - ArrayList_Unlock_Conditional
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:516,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:516,6'
              BranchSideFuncs:
                - ArrayList_Unlock_Conditional
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:517,9'
              BranchSideFuncs:
                - ArrayList_Unlock_Conditional
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:492,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:493,2'
          Dst:             ArrayList_Lock_Conditional
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:502,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:519,2'
          Dst:             ArrayList_Unlock_Conditional
    - functionName:    ArrayList_IndexOf
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/ArrayList.c'
      linkageType:     InternalLinkage
      functionLinenumber: 435
      functionLinenumberEnd: 469
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - arrayList
        - obj
        - startIndex
        - count
      BBCount:         28
      ICount:          151
      EdgeCount:       34
      CyclomaticComplexity: 8
      functionsReached:
        - ArrayList_Lock_Conditional
        - ArrayList_Unlock_Conditional
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:438,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:438,2'
              BranchSideFuncs:
                - ArrayList_Lock_Conditional
                - ArrayList_Unlock_Conditional
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:438,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:442,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:443,10'
              BranchSideFuncs:
                - ArrayList_Unlock_Conditional
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:445,18'
              BranchSideFuncs:
                - ArrayList_Unlock_Conditional
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:447,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:449,7'
              BranchSideFuncs:
                - ArrayList_Unlock_Conditional
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:454,2'
              BranchSideFuncs:
                - ArrayList_Unlock_Conditional
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:449,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:450,4'
              BranchSideFuncs:
                - ArrayList_Unlock_Conditional
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:451,21'
              BranchSideFuncs:
                - ArrayList_Unlock_Conditional
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:454,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:456,7'
              BranchSideFuncs:
                - ArrayList_Unlock_Conditional
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:461,2'
              BranchSideFuncs:
                - ArrayList_Unlock_Conditional
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:456,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:458,10'
              BranchSideFuncs:
                - ArrayList_Unlock_Conditional
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:461,2'
              BranchSideFuncs:
                - ArrayList_Unlock_Conditional
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:464,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:464,6'
              BranchSideFuncs:
                - ArrayList_Unlock_Conditional
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:465,9'
              BranchSideFuncs:
                - ArrayList_Unlock_Conditional
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:438,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:439,2'
          Dst:             ArrayList_Lock_Conditional
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:467,2'
          Dst:             ArrayList_Unlock_Conditional
    - functionName:    ArrayList_RemoveAt
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/ArrayList.c'
      linkageType:     InternalLinkage
      functionLinenumber: 402
      functionLinenumberEnd: 418
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - arrayList
        - index
      BBCount:         15
      ICount:          80
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - ArrayList_Lock_Conditional
        - ArrayList_Shift
        - ArrayList_Unlock_Conditional
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:405,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:405,2'
              BranchSideFuncs:
                - ArrayList_Lock_Conditional
                - ArrayList_Unlock_Conditional
                - ArrayList_Shift
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:405,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:408,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:408,6'
              BranchSideFuncs:
                - ArrayList_Shift
                - ArrayList_Unlock_Conditional
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:410,7'
              BranchSideFuncs:
                - ArrayList_Shift
                - ArrayList_Unlock_Conditional
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:410,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:411,4'
              BranchSideFuncs:
                - ArrayList_Shift
                - ArrayList_Unlock_Conditional
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:413,25'
              BranchSideFuncs:
                - ArrayList_Shift
                - ArrayList_Unlock_Conditional
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:405,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:406,2'
          Dst:             ArrayList_Lock_Conditional
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:413,9'
          Dst:             ArrayList_Shift
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:416,2'
          Dst:             ArrayList_Unlock_Conditional
    - functionName:    ArrayList_Shift
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/ArrayList.c'
      linkageType:     InternalLinkage
      functionLinenumber: 226
      functionLinenumberEnd: 252
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - arrayList
        - index
        - count
      BBCount:         42
      ICount:          212
      EdgeCount:       49
      CyclomaticComplexity: 9
      functionsReached:
        - ArrayList_EnsureCapacity
        - winpr_int_assert
      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:
                - winpr_int_assert
                - winpr_int_assert
                - ArrayList_EnsureCapacity
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:227,2'
              BranchSideFuncs:
                - winpr_int_assert
        - 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:
                - winpr_int_assert
                - winpr_int_assert
        - 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:239,25'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:239,25'
              BranchSideFuncs:
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:239,25'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:239,25'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:239,25'
              BranchSideFuncs:
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:239,25'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:239,25'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:239,25'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:239,25'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:239,25'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:239,25'
              BranchSideFuncs:
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:239,25'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:239,25'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:239,25'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:239,25'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:241,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:243,25'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:248,22'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:227,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:230,8'
          Dst:             ArrayList_EnsureCapacity
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:239,25'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:239,25'
          Dst:             winpr_int_assert
    - functionName:    ArrayList_Remove
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/ArrayList.c'
      linkageType:     InternalLinkage
      functionLinenumber: 367
      functionLinenumberEnd: 394
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - arrayList
        - obj
      BBCount:         22
      ICount:          125
      EdgeCount:       26
      CyclomaticComplexity: 6
      functionsReached:
        - ArrayList_Lock_Conditional
        - ArrayList_Shift
        - ArrayList_Unlock_Conditional
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:371,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:371,2'
              BranchSideFuncs:
                - ArrayList_Lock_Conditional
                - ArrayList_Unlock_Conditional
                - ArrayList_Shift
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:371,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:375,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:377,7'
              BranchSideFuncs:
                - ArrayList_Unlock_Conditional
                - ArrayList_Shift
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:384,6'
              BranchSideFuncs:
                - ArrayList_Unlock_Conditional
                - ArrayList_Shift
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:377,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:379,10'
              BranchSideFuncs:
                - ArrayList_Unlock_Conditional
                - ArrayList_Shift
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:382,2'
              BranchSideFuncs:
                - ArrayList_Unlock_Conditional
                - ArrayList_Shift
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:384,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:384,6'
              BranchSideFuncs:
                - ArrayList_Shift
                - ArrayList_Unlock_Conditional
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:386,7'
              BranchSideFuncs:
                - ArrayList_Shift
                - ArrayList_Unlock_Conditional
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:386,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:387,4'
              BranchSideFuncs:
                - ArrayList_Shift
                - ArrayList_Unlock_Conditional
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:389,25'
              BranchSideFuncs:
                - ArrayList_Shift
                - ArrayList_Unlock_Conditional
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:371,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:372,2'
          Dst:             ArrayList_Lock_Conditional
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:389,9'
          Dst:             ArrayList_Shift
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:392,2'
          Dst:             ArrayList_Unlock_Conditional
    - functionName:    ArrayList_Insert
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/ArrayList.c'
      linkageType:     InternalLinkage
      functionLinenumber: 339
      functionLinenumberEnd: 359
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - arrayList
        - index
        - obj
      BBCount:         15
      ICount:          71
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - ArrayList_Lock_Conditional
        - ArrayList_SetItem
        - ArrayList_Shift
        - ArrayList_Unlock_Conditional
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:342,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:342,2'
              BranchSideFuncs:
                - ArrayList_Lock_Conditional
                - ArrayList_Unlock_Conditional
                - ArrayList_Shift
                - ArrayList_SetItem
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:342,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:345,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:345,6'
              BranchSideFuncs:
                - ArrayList_Shift
                - ArrayList_Unlock_Conditional
                - ArrayList_SetItem
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:347,24'
              BranchSideFuncs:
                - ArrayList_Shift
                - ArrayList_Unlock_Conditional
                - ArrayList_SetItem
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:347,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:349,8'
              BranchSideFuncs:
                - ArrayList_SetItem
                - ArrayList_Unlock_Conditional
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:353,22'
              BranchSideFuncs:
                - ArrayList_SetItem
                - ArrayList_Unlock_Conditional
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:342,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:343,2'
          Dst:             ArrayList_Lock_Conditional
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:347,8'
          Dst:             ArrayList_Shift
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:353,4'
          Dst:             ArrayList_SetItem
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:357,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:         20
      ICount:          108
      EdgeCount:       24
      CyclomaticComplexity: 6
      functionsReached:
        - winpr_int_assert
      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:172,2'
              BranchSideFuncs:
                - winpr_int_assert
        - 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:189,13'
              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:             winpr_int_assert
    - functionName:    ArrayList_Append
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/ArrayList.c'
      linkageType:     InternalLinkage
      functionLinenumber: 315
      functionLinenumberEnd: 331
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - arrayList
        - obj
      BBCount:         12
      ICount:          65
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - ArrayList_EnsureCapacity
        - ArrayList_Lock_Conditional
        - ArrayList_SetItem
        - ArrayList_Unlock_Conditional
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:319,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:319,2'
              BranchSideFuncs:
                - ArrayList_Lock_Conditional
                - ArrayList_EnsureCapacity
                - ArrayList_Unlock_Conditional
                - ArrayList_SetItem
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:319,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:322,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:323,3'
              BranchSideFuncs:
                - ArrayList_SetItem
                - ArrayList_Unlock_Conditional
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:325,10'
              BranchSideFuncs:
                - ArrayList_SetItem
                - ArrayList_Unlock_Conditional
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:319,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:320,2'
          Dst:             ArrayList_Lock_Conditional
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:322,7'
          Dst:             ArrayList_EnsureCapacity
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:326,7'
          Dst:             ArrayList_SetItem
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:329,2'
          Dst:             ArrayList_Unlock_Conditional
    - functionName:    ArrayList_Contains
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/ArrayList.c'
      linkageType:     InternalLinkage
      functionLinenumber: 281
      functionLinenumberEnd: 297
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - arrayList
        - obj
      BBCount:         16
      ICount:          83
      EdgeCount:       18
      CyclomaticComplexity: 4
      functionsReached:
        - ArrayList_Lock_Conditional
        - ArrayList_Unlock_Conditional
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:284,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:284,2'
              BranchSideFuncs:
                - ArrayList_Lock_Conditional
                - ArrayList_Unlock_Conditional
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:284,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:287,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:287,2'
              BranchSideFuncs:
                - ArrayList_Unlock_Conditional
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:289,8'
              BranchSideFuncs:
                - ArrayList_Unlock_Conditional
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:291,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:292,4'
              BranchSideFuncs:
                - ArrayList_Unlock_Conditional
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:293,2'
              BranchSideFuncs:
                - ArrayList_Unlock_Conditional
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:284,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:285,2'
          Dst:             ArrayList_Lock_Conditional
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:295,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:         9
      ICount:          32
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - LeaveCriticalSection
        - winpr_int_assert
      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:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:145,2'
          Dst:             winpr_int_assert
        - 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:         9
      ICount:          32
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - EnterCriticalSection
        - winpr_int_assert
      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:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:128,2'
          Dst:             winpr_int_assert
        - 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:         9
      ICount:          32
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      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:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:111,2'
          Dst:             winpr_int_assert
    - 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:         9
      ICount:          29
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      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:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:101,2'
          Dst:             winpr_int_assert
    - 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:         9
      ICount:          29
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      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:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:91,2'
          Dst:             winpr_int_assert
    - 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:         9
      ICount:          40
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      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:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:80,2'
          Dst:             winpr_int_assert
    - 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:         9
      ICount:          32
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      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:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:60,2'
          Dst:             winpr_int_assert
    - functionName:    WLog_PrintMessagePrefixVA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/Layout.c'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 84
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - log
        - message
        - format
        - args
      BBCount:         9
      ICount:          44
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - vsnprintf
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:82,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:82,2'
              BranchSideFuncs:
                - vsnprintf
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:82,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:82,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:83,8'
          Dst:             vsnprintf
    - functionName:    log_invalid_fmt
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/Layout.c'
      linkageType:     InternalLinkage
      functionLinenumber: 113
      functionLinenumberEnd: 115
      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:114,8'
          Dst:             fprintf
    - functionName:    check_and_log_format_size
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/Layout.c'
      linkageType:     InternalLinkage
      functionLinenumber: 119
      functionLinenumberEnd: 130
      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:121,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:123,17'
              BranchSideFuncs:
                - fprintf
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:129,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:123,9'
          Dst:             fprintf
    - functionName:    opt_compare_fn
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/Layout.c'
      linkageType:     InternalLinkage
      functionLinenumber: 133
      functionLinenumberEnd: 139
      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:136,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:137,3'
              BranchSideFuncs:
                - strncmp
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:138,17'
              BranchSideFuncs:
                - strncmp
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:138,9'
          Dst:             strncmp
    - functionName:    WLog_Layout_Free
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/Layout.c'
      linkageType:     InternalLinkage
      functionLinenumber: 379
      functionLinenumberEnd: 390
      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:380,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:380,6'
              BranchSideFuncs:
                - free
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:382,7'
              BranchSideFuncs:
                - free
                - free
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:382,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:384,9'
              BranchSideFuncs:
                - free
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:388,8'
              BranchSideFuncs:
                - free
      Callsites:       []
    - functionName:    WLog_Layout_New
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/Layout.c'
      linkageType:     InternalLinkage
      functionLinenumber: 327
      functionLinenumberEnd: 376
      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:334,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:335,3'
              BranchSideFuncs:
                - GetEnvironmentVariableA
                - _strdup
                - free
                - malloc
                - free
                - GetEnvironmentVariableA
                - free
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:337,34'
              BranchSideFuncs:
                - GetEnvironmentVariableA
                - _strdup
                - free
                - malloc
                - free
                - GetEnvironmentVariableA
                - free
                - free
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:339,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:341,23'
              BranchSideFuncs:
                - malloc
                - free
                - GetEnvironmentVariableA
                - _strdup
                - free
                - free
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:357,6'
              BranchSideFuncs:
                - _strdup
                - free
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:343,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:345,9'
              BranchSideFuncs:
                - GetEnvironmentVariableA
                - _strdup
                - free
                - free
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:349,31'
              BranchSideFuncs:
                - GetEnvironmentVariableA
                - _strdup
                - free
                - free
                - free
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:349,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:351,9'
              BranchSideFuncs:
                - free
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:355,2'
              BranchSideFuncs:
                - _strdup
                - free
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:357,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:358,26'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:365,7'
              BranchSideFuncs:
                - _strdup
                - free
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:368,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:0,0'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:370,9'
              BranchSideFuncs:
                - free
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:332,24'
          Dst:             calloc
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:337,10'
          Dst:             GetEnvironmentVariableA
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:349,7'
          Dst:             GetEnvironmentVariableA
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:365,7'
          Dst:             _strdup
    - functionName:    WLog_Layout_SetPrefixFormat
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/Layout.c'
      linkageType:     InternalLinkage
      functionLinenumber: 311
      functionLinenumberEnd: 324
      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:315,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:317,34'
              BranchSideFuncs:
                - _strdup
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:323,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:319,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:320,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:321,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:317,26'
          Dst:             _strdup
    - functionName:    WLog_GetLogLayout
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/Layout.c'
      linkageType:     InternalLinkage
      functionLinenumber: 303
      functionLinenumberEnd: 306
      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:305,13'
          Dst:             WLog_GetLogAppender
    - functionName:    WLog_PrintMessagePrefix
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/Layout.c'
      linkageType:     InternalLinkage
      functionLinenumber: 89
      functionLinenumberEnd: 94
      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:92,2'
          Dst:             WLog_PrintMessagePrefixVA
    - functionName:    replace_format_string
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/Layout.c'
      linkageType:     InternalLinkage
      functionLinenumber: 179
      functionLinenumberEnd: 232
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - FormatString
        - recurse
        - format
        - formatlen
      BBCount:         85
      ICount:          396
      EdgeCount:       102
      CyclomaticComplexity: 19
      functionsReached:
        - bsearch
        - check_and_log_format_size
        - log_invalid_fmt
        - opt_compare_fn
        - snprintf
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:180,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:180,2'
              BranchSideFuncs:
                - winpr_int_assert
                - check_and_log_format_size
                - bsearch
                - check_and_log_format_size
                - log_invalid_fmt
                - snprintf
                - winpr_int_assert
                - winpr_int_assert
                - check_and_log_format_size
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:180,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:181,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:181,2'
              BranchSideFuncs:
                - check_and_log_format_size
                - bsearch
                - check_and_log_format_size
                - log_invalid_fmt
                - snprintf
                - winpr_int_assert
                - winpr_int_assert
                - check_and_log_format_size
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:181,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:185,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:188,15'
              BranchSideFuncs:
                - bsearch
                - check_and_log_format_size
                - check_and_log_format_size
                - log_invalid_fmt
                - snprintf
                - winpr_int_assert
                - winpr_int_assert
                - check_and_log_format_size
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:229,33'
              BranchSideFuncs:
                - check_and_log_format_size
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:190,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:192,24'
              BranchSideFuncs:
                - check_and_log_format_size
                - bsearch
                - check_and_log_format_size
                - log_invalid_fmt
                - snprintf
                - winpr_int_assert
                - winpr_int_assert
                - check_and_log_format_size
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:220,9'
              BranchSideFuncs:
                - check_and_log_format_size
                - check_and_log_format_size
                - bsearch
                - snprintf
                - winpr_int_assert
                - winpr_int_assert
                - check_and_log_format_size
                - winpr_int_assert
                - winpr_int_assert
                - log_invalid_fmt
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:197,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:198,15'
              BranchSideFuncs:
                - check_and_log_format_size
                - bsearch
                - check_and_log_format_size
                - log_invalid_fmt
                - snprintf
                - winpr_int_assert
                - winpr_int_assert
                - check_and_log_format_size
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:199,8'
              BranchSideFuncs:
                - check_and_log_format_size
                - bsearch
                - check_and_log_format_size
                - log_invalid_fmt
                - snprintf
                - winpr_int_assert
                - winpr_int_assert
                - check_and_log_format_size
                - winpr_int_assert
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:199,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:200,11'
              BranchSideFuncs:
                - check_and_log_format_size
                - bsearch
                - check_and_log_format_size
                - log_invalid_fmt
                - snprintf
                - winpr_int_assert
                - winpr_int_assert
                - check_and_log_format_size
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:202,8'
              BranchSideFuncs:
                - check_and_log_format_size
                - bsearch
                - check_and_log_format_size
                - log_invalid_fmt
                - snprintf
                - winpr_int_assert
                - winpr_int_assert
                - check_and_log_format_size
                - winpr_int_assert
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:202,16'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:202,20'
              BranchSideFuncs:
                - check_and_log_format_size
                - bsearch
                - check_and_log_format_size
                - log_invalid_fmt
                - snprintf
                - winpr_int_assert
                - winpr_int_assert
                - check_and_log_format_size
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:215,20'
              BranchSideFuncs:
                - check_and_log_format_size
                - bsearch
                - check_and_log_format_size
                - log_invalid_fmt
                - snprintf
                - winpr_int_assert
                - winpr_int_assert
                - check_and_log_format_size
                - winpr_int_assert
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:202,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:206,31'
              BranchSideFuncs:
                - snprintf
                - winpr_int_assert
                - winpr_int_assert
                - check_and_log_format_size
                - winpr_int_assert
                - winpr_int_assert
                - check_and_log_format_size
                - bsearch
                - check_and_log_format_size
                - log_invalid_fmt
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:215,20'
              BranchSideFuncs:
                - check_and_log_format_size
                - bsearch
                - check_and_log_format_size
                - log_invalid_fmt
                - snprintf
                - winpr_int_assert
                - winpr_int_assert
                - check_and_log_format_size
                - winpr_int_assert
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:208,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:209,6'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:210,36'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - check_and_log_format_size
                - winpr_int_assert
                - winpr_int_assert
                - check_and_log_format_size
                - bsearch
                - check_and_log_format_size
                - log_invalid_fmt
                - snprintf
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:211,36'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:211,36'
              BranchSideFuncs:
                - winpr_int_assert
                - check_and_log_format_size
                - winpr_int_assert
                - winpr_int_assert
                - check_and_log_format_size
                - bsearch
                - check_and_log_format_size
                - log_invalid_fmt
                - snprintf
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:211,36'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:211,36'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:211,36'
              BranchSideFuncs:
                - winpr_int_assert
                - check_and_log_format_size
                - winpr_int_assert
                - winpr_int_assert
                - check_and_log_format_size
                - bsearch
                - check_and_log_format_size
                - log_invalid_fmt
                - snprintf
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:211,36'
              BranchSideFuncs:
                - winpr_int_assert
                - check_and_log_format_size
                - winpr_int_assert
                - winpr_int_assert
                - check_and_log_format_size
                - bsearch
                - check_and_log_format_size
                - log_invalid_fmt
                - snprintf
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:211,36'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:211,36'
              BranchSideFuncs:
                - check_and_log_format_size
                - winpr_int_assert
                - winpr_int_assert
                - check_and_log_format_size
                - bsearch
                - check_and_log_format_size
                - log_invalid_fmt
                - snprintf
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:211,36'
              BranchSideFuncs:
                - winpr_int_assert
                - check_and_log_format_size
                - winpr_int_assert
                - winpr_int_assert
                - check_and_log_format_size
                - bsearch
                - check_and_log_format_size
                - log_invalid_fmt
                - snprintf
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:211,36'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:211,36'
              BranchSideFuncs:
                - winpr_int_assert
                - check_and_log_format_size
                - winpr_int_assert
                - winpr_int_assert
                - check_and_log_format_size
                - bsearch
                - check_and_log_format_size
                - log_invalid_fmt
                - snprintf
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:211,36'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:211,36'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:211,36'
              BranchSideFuncs:
                - check_and_log_format_size
                - winpr_int_assert
                - winpr_int_assert
                - check_and_log_format_size
                - bsearch
                - check_and_log_format_size
                - log_invalid_fmt
                - snprintf
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:211,36'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:210,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:212,6'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - check_and_log_format_size
                - bsearch
                - check_and_log_format_size
                - log_invalid_fmt
                - snprintf
                - winpr_int_assert
                - winpr_int_assert
                - check_and_log_format_size
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:213,14'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - check_and_log_format_size
                - bsearch
                - check_and_log_format_size
                - log_invalid_fmt
                - snprintf
                - winpr_int_assert
                - winpr_int_assert
                - check_and_log_format_size
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:213,14'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:213,14'
              BranchSideFuncs:
                - winpr_int_assert
                - check_and_log_format_size
                - bsearch
                - check_and_log_format_size
                - log_invalid_fmt
                - snprintf
                - winpr_int_assert
                - winpr_int_assert
                - check_and_log_format_size
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:213,14'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:213,14'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:213,14'
              BranchSideFuncs:
                - winpr_int_assert
                - check_and_log_format_size
                - bsearch
                - check_and_log_format_size
                - log_invalid_fmt
                - snprintf
                - winpr_int_assert
                - winpr_int_assert
                - check_and_log_format_size
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:213,14'
              BranchSideFuncs:
                - winpr_int_assert
                - check_and_log_format_size
                - bsearch
                - check_and_log_format_size
                - log_invalid_fmt
                - snprintf
                - winpr_int_assert
                - winpr_int_assert
                - check_and_log_format_size
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:213,14'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:213,14'
              BranchSideFuncs:
                - check_and_log_format_size
                - bsearch
                - check_and_log_format_size
                - log_invalid_fmt
                - snprintf
                - winpr_int_assert
                - winpr_int_assert
                - check_and_log_format_size
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:213,14'
              BranchSideFuncs:
                - winpr_int_assert
                - check_and_log_format_size
                - bsearch
                - check_and_log_format_size
                - log_invalid_fmt
                - snprintf
                - winpr_int_assert
                - winpr_int_assert
                - check_and_log_format_size
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:213,14'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:213,14'
              BranchSideFuncs:
                - winpr_int_assert
                - check_and_log_format_size
                - bsearch
                - check_and_log_format_size
                - log_invalid_fmt
                - snprintf
                - winpr_int_assert
                - winpr_int_assert
                - check_and_log_format_size
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:213,14'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:213,14'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:213,14'
              BranchSideFuncs:
                - check_and_log_format_size
                - bsearch
                - check_and_log_format_size
                - log_invalid_fmt
                - snprintf
                - winpr_int_assert
                - winpr_int_assert
                - check_and_log_format_size
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:213,14'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:220,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:221,28'
              BranchSideFuncs:
                - log_invalid_fmt
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:223,35'
              BranchSideFuncs:
                - check_and_log_format_size
                - check_and_log_format_size
                - bsearch
                - log_invalid_fmt
                - snprintf
                - winpr_int_assert
                - winpr_int_assert
                - check_and_log_format_size
                - winpr_int_assert
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:223,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:224,5'
              BranchSideFuncs:
                - check_and_log_format_size
                - bsearch
                - check_and_log_format_size
                - log_invalid_fmt
                - snprintf
                - winpr_int_assert
                - winpr_int_assert
                - check_and_log_format_size
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:225,35'
              BranchSideFuncs:
                - check_and_log_format_size
                - bsearch
                - check_and_log_format_size
                - log_invalid_fmt
                - snprintf
                - winpr_int_assert
                - winpr_int_assert
                - check_and_log_format_size
                - winpr_int_assert
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:229,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:230,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:231,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:180,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:181,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:188,7'
          Dst:             bsearch
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:188,7'
          Dst:             opt_compare_fn
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:206,20'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:211,36'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:211,36'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:210,10'
          Dst:             check_and_log_format_size
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:213,14'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:213,14'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:221,12'
          Dst:             log_invalid_fmt
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:223,9'
          Dst:             check_and_log_format_size
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:229,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: 146
      functionLinenumberEnd: 175
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - opt
        - fmt
        - preplacelen
        - pskiplen
      BBCount:         79
      ICount:          360
      EdgeCount:       89
      CyclomaticComplexity: 12
      functionsReached:
        - replace_format_string
        - strnlen
        - strstr
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:147,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:147,2'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - strstr
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - replace_format_string
                - strnlen
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:147,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:148,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:148,2'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - strstr
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - replace_format_string
                - strnlen
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:148,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:149,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:149,2'
              BranchSideFuncs:
                - winpr_int_assert
                - strstr
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - replace_format_string
                - strnlen
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:149,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:150,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:150,2'
              BranchSideFuncs:
                - strstr
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - replace_format_string
                - strnlen
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:150,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:157,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:158,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - replace_format_string
                - strnlen
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:159,14'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - replace_format_string
                - strnlen
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:159,14'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:159,14'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - replace_format_string
                - strnlen
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:159,14'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:159,14'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:159,14'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - replace_format_string
                - strnlen
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:159,14'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - replace_format_string
                - strnlen
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:159,14'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:159,14'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - replace_format_string
                - strnlen
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:159,14'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - replace_format_string
                - strnlen
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:159,14'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:159,14'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - replace_format_string
                - strnlen
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:159,14'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:159,14'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:159,14'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - replace_format_string
                - strnlen
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:159,14'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:161,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:162,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - replace_format_string
                - strnlen
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:164,28'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - replace_format_string
                - strnlen
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:164,28'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:164,28'
              BranchSideFuncs:
                - winpr_int_assert
                - replace_format_string
                - strnlen
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:164,28'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:164,28'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:164,28'
              BranchSideFuncs:
                - winpr_int_assert
                - replace_format_string
                - strnlen
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:164,28'
              BranchSideFuncs:
                - winpr_int_assert
                - replace_format_string
                - strnlen
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:164,28'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:164,28'
              BranchSideFuncs:
                - replace_format_string
                - strnlen
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:164,28'
              BranchSideFuncs:
                - winpr_int_assert
                - replace_format_string
                - strnlen
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:164,28'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:164,28'
              BranchSideFuncs:
                - winpr_int_assert
                - replace_format_string
                - strnlen
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:164,28'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:164,28'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:164,28'
              BranchSideFuncs:
                - replace_format_string
                - strnlen
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:164,28'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:167,22'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:167,2'
              BranchSideFuncs:
                - replace_format_string
                - strnlen
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:167,2'
              BranchSideFuncs:
                - replace_format_string
                - strnlen
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:169,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:171,3'
              BranchSideFuncs:
                - strnlen
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:173,25'
              BranchSideFuncs:
                - strnlen
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:147,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:148,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:149,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:150,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:156,20'
          Dst:             strstr
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:159,14'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:159,14'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:164,28'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:164,28'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:169,7'
          Dst:             replace_format_string
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:173,17'
          Dst:             strnlen
    - functionName:    get_tid
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/Layout.c'
      linkageType:     InternalLinkage
      functionLinenumber: 97
      functionLinenumberEnd: 109
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - arg
      BBCount:         9
      ICount:          46
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - snprintf
        - syscall
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:99,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:99,2'
              BranchSideFuncs:
                - syscall
                - snprintf
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:99,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:99,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:104,16'
          Dst:             syscall
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:108,8'
          Dst:             snprintf
    - functionName:    WLog_Layout_GetMessagePrefix
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/Layout.c'
      linkageType:     InternalLinkage
      functionLinenumber: 235
      functionLinenumberEnd: 300
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - log
        - layout
        - message
      BBCount:         18
      ICount:          470
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - GetCurrentProcessId
        - GetLocalTime
        - WLog_PrintMessagePrefix
        - replace_format_string
        - winpr_int_assert
      functionUses:    7
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:238,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:238,2'
              BranchSideFuncs:
                - winpr_int_assert
                - GetLocalTime
                - GetCurrentProcessId
                - replace_format_string
                - WLog_PrintMessagePrefix
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:238,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:239,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:239,2'
              BranchSideFuncs:
                - GetLocalTime
                - GetCurrentProcessId
                - replace_format_string
                - WLog_PrintMessagePrefix
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:239,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:289,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:290,3'
              BranchSideFuncs:
                - WLog_PrintMessagePrefix
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:295,26'
              BranchSideFuncs:
                - WLog_PrintMessagePrefix
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:238,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:239,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:244,2'
          Dst:             GetLocalTime
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:275,54'
          Dst:             GetCurrentProcessId
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:289,7'
          Dst:             replace_format_string
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:295,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: 29
      functionLinenumberEnd: 42
      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:35,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/DataMessage.c:36,3'
              BranchSideFuncs:
                - fwrite
                - fclose
            - BranchSide:      'winpr/libwinpr/utils/wlog/DataMessage.c:38,13'
              BranchSideFuncs:
                - fwrite
                - fclose
        - Branch String:   'winpr/libwinpr/utils/wlog/DataMessage.c:38,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/DataMessage.c:39,7'
              BranchSideFuncs:
                - fclose
            - BranchSide:      'winpr/libwinpr/utils/wlog/DataMessage.c:40,15'
              BranchSideFuncs:
                - fclose
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/DataMessage.c:33,7'
          Dst:             winpr_fopen
        - Src:             'winpr/libwinpr/utils/wlog/DataMessage.c:38,6'
          Dst:             fwrite
        - Src:             'winpr/libwinpr/utils/wlog/DataMessage.c:40,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:    winpr_Data_Write_UINT32_BE
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/endian.h'
      linkageType:     InternalLinkage
      functionLinenumber: 266
      functionLinenumberEnd: 271
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - d
        - v
      BBCount:         9
      ICount:          48
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_Data_Write_UINT16_BE
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/endian.h:267,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/endian.h:267,3'
              BranchSideFuncs:
                - winpr_Data_Write_UINT16_BE.3659
                - winpr_Data_Write_UINT16_BE.3659
            - BranchSide:      'winpr/include/winpr/endian.h:267,3'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/include/winpr/endian.h:267,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/endian.h:269,3'
          Dst:             winpr_Data_Write_UINT16_BE
        - Src:             'winpr/include/winpr/endian.h:270,3'
          Dst:             winpr_Data_Write_UINT16_BE
    - functionName:    winpr_Data_Write_UINT16_BE
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/endian.h'
      linkageType:     InternalLinkage
      functionLinenumber: 243
      functionLinenumberEnd: 248
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - d
        - v
      BBCount:         9
      ICount:          51
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/endian.h:244,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/endian.h:244,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/endian.h:244,3'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/include/winpr/endian.h:244,3'
          Dst:             winpr_int_assert
    - functionName:    winpr_Data_Write_UINT16
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/endian.h'
      linkageType:     InternalLinkage
      functionLinenumber: 235
      functionLinenumberEnd: 240
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - d
        - v
      BBCount:         9
      ICount:          51
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/endian.h:236,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/endian.h:236,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/endian.h:236,3'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/include/winpr/endian.h:236,3'
          Dst:             winpr_int_assert
    - functionName:    winpr_Data_Write_UINT8
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/endian.h'
      linkageType:     InternalLinkage
      functionLinenumber: 221
      functionLinenumberEnd: 225
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - d
        - v
      BBCount:         9
      ICount:          39
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/endian.h:222,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/endian.h:222,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/endian.h:222,3'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/include/winpr/endian.h:222,3'
          Dst:             winpr_int_assert
    - functionName:    Stream_Rewind
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 131
      functionLinenumberEnd: 141
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - s
        - _offset
      BBCount:         24
      ICount:          99
      EdgeCount:       25
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:133,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:133,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/include/winpr/stream.h:133,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:134,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:134,3'
              BranchSideFuncs:
                - winpr_int_assert
            - BranchSide:      'winpr/include/winpr/stream.h:134,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:136,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:136,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/stream.h:136,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:137,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:138,19'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/stream.h:140,17'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:133,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:134,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:136,3'
          Dst:             winpr_int_assert
    - functionName:    IPv4Checksum
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/PacketMessage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 173
      functionLinenumberEnd: 190
      functionDepth:   0
      returnType:      short
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ipv4
        - length
      BBCount:         10
      ICount:          76
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:176,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:178,41'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:184,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:184,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:185,16'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:187,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:187,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:188,15'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:190,19'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    Stream_Write_UINT32_BE_unchecked
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1080
      functionLinenumberEnd: 1085
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - _s
        - _v
      BBCount:         9
      ICount:          44
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - winpr_Data_Write_UINT32_BE
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:1081,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:1081,3'
              BranchSideFuncs:
                - winpr_Data_Write_UINT32_BE.3655
            - BranchSide:      'winpr/include/winpr/stream.h:1081,3'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1081,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:1081,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1083,3'
          Dst:             winpr_Data_Write_UINT32_BE
    - functionName:    Stream_Write_UINT16_unchecked
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 892
      functionLinenumberEnd: 899
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - _s
        - _v
      BBCount:         21
      ICount:          70
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - winpr_Data_Write_UINT16
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:893,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:893,3'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_GetRemainingCapacity
                - winpr_int_assert
                - winpr_Data_Write_UINT16.3661
            - BranchSide:      'winpr/include/winpr/stream.h:893,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:894,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:894,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - winpr_int_assert
                - winpr_Data_Write_UINT16.3661
            - BranchSide:      'winpr/include/winpr/stream.h:894,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:895,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:895,3'
              BranchSideFuncs:
                - winpr_Data_Write_UINT16.3661
            - BranchSide:      'winpr/include/winpr/stream.h:895,3'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:893,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:894,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:895,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:895,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:897,3'
          Dst:             winpr_Data_Write_UINT16
    - functionName:    Stream_Write_UINT8_unchecked
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 840
      functionLinenumberEnd: 847
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - _s
        - _v
      BBCount:         21
      ICount:          70
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - winpr_Data_Write_UINT8
        - winpr_int_assert
      functionUses:    6
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:841,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:841,3'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_GetRemainingCapacity
                - winpr_int_assert
                - winpr_Data_Write_UINT8.3663
            - BranchSide:      'winpr/include/winpr/stream.h:841,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:842,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:842,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - winpr_int_assert
                - winpr_Data_Write_UINT8.3663
            - BranchSide:      'winpr/include/winpr/stream.h:842,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:843,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:843,3'
              BranchSideFuncs:
                - winpr_Data_Write_UINT8.3663
            - BranchSide:      'winpr/include/winpr/stream.h:843,3'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:841,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:842,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:843,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:843,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:845,3'
          Dst:             winpr_Data_Write_UINT8
    - functionName:    Stream_Seek
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 124
      functionLinenumberEnd: 128
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - s
        - _offset
      BBCount:         15
      ICount:          53
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:125,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:125,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - winpr_int_assert
            - BranchSide:      'winpr/include/winpr/stream.h:125,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:126,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:126,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/stream.h:126,3'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:125,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:126,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:126,3'
          Dst:             winpr_int_assert
    - functionName:    Stream_Write_UINT16_BE_unchecked
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 918
      functionLinenumberEnd: 925
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - _s
        - _v
      BBCount:         21
      ICount:          70
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - winpr_Data_Write_UINT16_BE
        - winpr_int_assert
      functionUses:    9
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:919,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:919,3'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_GetRemainingCapacity
                - winpr_int_assert
                - winpr_Data_Write_UINT16_BE.3659
            - BranchSide:      'winpr/include/winpr/stream.h:919,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:920,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:920,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - winpr_int_assert
                - winpr_Data_Write_UINT16_BE.3659
            - BranchSide:      'winpr/include/winpr/stream.h:920,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:921,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:921,3'
              BranchSideFuncs:
                - winpr_Data_Write_UINT16_BE.3659
            - BranchSide:      'winpr/include/winpr/stream.h:921,3'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:919,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:920,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:921,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:921,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:923,3'
          Dst:             winpr_Data_Write_UINT16_BE
    - functionName:    Stream_Write
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1154
      functionLinenumberEnd: 1163
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - _s
        - _b
        - _n
      BBCount:         24
      ICount:          80
      EdgeCount:       25
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_GetRemainingCapacity
        - Stream_Seek
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:1155,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:1155,7'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - Stream_GetRemainingCapacity
                - winpr_int_assert
                - Stream_Seek.3682
            - BranchSide:      'winpr/include/winpr/stream.h:1157,4'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - Stream_GetRemainingCapacity
                - winpr_int_assert
                - Stream_Seek.3682
        - Branch String:   'winpr/include/winpr/stream.h:1157,4'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:1157,4'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_GetRemainingCapacity
                - winpr_int_assert
                - Stream_Seek.3682
            - BranchSide:      'winpr/include/winpr/stream.h:1157,4'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:1158,4'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:1158,4'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - winpr_int_assert
                - Stream_Seek.3682
            - BranchSide:      'winpr/include/winpr/stream.h:1158,4'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:1159,4'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:1159,4'
              BranchSideFuncs:
                - Stream_Seek.3682
            - BranchSide:      'winpr/include/winpr/stream.h:1159,4'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1157,4'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1158,4'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1159,4'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:1159,4'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1161,4'
          Dst:             Stream_Seek
    - functionName:    Pcap_Write_RecordContent
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/PacketMessage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 59
      functionLinenumberEnd: 63
      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:60,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:60,14'
              BranchSideFuncs:
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:62,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:60,23'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:60,33'
              BranchSideFuncs:
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:62,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:60,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:61,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:62,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:60,26'
          Dst:             fwrite
    - functionName:    WLog_PacketMessage_Write_TcpHeader
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/PacketMessage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 227
      functionLinenumberEnd: 256
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pcap
        - tcp
      BBCount:         145
      ICount:          471
      EdgeCount:       151
      CyclomaticComplexity: 8
      functionsReached:
        - Stream_StaticInit
        - Stream_Write_UINT16_BE_unchecked
        - Stream_Write_UINT32_BE_unchecked
        - Stream_Write_UINT8_unchecked
        - fwrite
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:233,12'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:233,16'
              BranchSideFuncs:
                - Stream_StaticInit
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked.3671
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked.3671
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:234,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:233,25'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:233,29'
              BranchSideFuncs:
                - Stream_StaticInit
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked.3671
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked.3671
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:234,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:233,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:234,3'
              BranchSideFuncs:
                - Stream_StaticInit
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked.3671
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked.3671
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:236,34'
              BranchSideFuncs:
                - Stream_StaticInit
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked.3671
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked.3671
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - fwrite
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:237,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:238,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked.3671
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked.3671
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:239,2'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked.3671
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked.3671
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - fwrite
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:239,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:239,2'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked.3671
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked.3671
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:239,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:239,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:239,2'
              BranchSideFuncs:
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked.3671
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked.3671
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:239,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:240,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:240,2'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked.3671
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked.3671
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:240,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:240,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:240,2'
              BranchSideFuncs:
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked.3671
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked.3671
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:240,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:241,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:241,2'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked.3671
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked.3671
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:241,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:241,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:241,2'
              BranchSideFuncs:
                - Stream_Write_UINT32_BE_unchecked.3671
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked.3671
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:241,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:242,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:242,2'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked.3671
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:242,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:242,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:242,2'
              BranchSideFuncs:
                - Stream_Write_UINT32_BE_unchecked.3671
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:242,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:243,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:243,2'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:243,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:243,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:243,2'
              BranchSideFuncs:
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:243,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:244,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:244,2'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:244,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:244,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:244,2'
              BranchSideFuncs:
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:244,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:245,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:245,2'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:245,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:245,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:245,2'
              BranchSideFuncs:
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:245,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:246,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:246,2'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:246,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:246,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:246,2'
              BranchSideFuncs:
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:246,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:247,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:247,2'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:247,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:247,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:247,2'
              BranchSideFuncs:
                - Stream_Write_UINT16_BE_unchecked.3685
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:247,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:249,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:251,14'
              BranchSideFuncs:
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:255,9'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:251,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:252,8'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:253,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:236,6'
          Dst:             Stream_StaticInit
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:239,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:239,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:239,2'
          Dst:             Stream_Write_UINT16_BE_unchecked
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:240,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:240,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:240,2'
          Dst:             Stream_Write_UINT16_BE_unchecked
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:241,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:241,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:241,2'
          Dst:             Stream_Write_UINT32_BE_unchecked
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:242,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:242,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:242,2'
          Dst:             Stream_Write_UINT32_BE_unchecked
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:243,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:243,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:243,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:244,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:244,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:244,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:245,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:245,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:245,2'
          Dst:             Stream_Write_UINT16_BE_unchecked
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:246,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:246,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:246,2'
          Dst:             Stream_Write_UINT16_BE_unchecked
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:247,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:247,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:247,2'
          Dst:             Stream_Write_UINT16_BE_unchecked
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:251,7'
          Dst:             fwrite
    - functionName:    WLog_PacketMessage_Write_IPv4Header
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/PacketMessage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 194
      functionLinenumberEnd: 224
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pcap
        - ipv4
      BBCount:         170
      ICount:          567
      EdgeCount:       175
      CyclomaticComplexity: 7
      functionsReached:
        - IPv4Checksum
        - Stream_Rewind
        - Stream_StaticInit
        - Stream_Write_UINT16_BE_unchecked
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_BE_unchecked
        - Stream_Write_UINT8_unchecked
        - fwrite
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:200,12'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:200,16'
              BranchSideFuncs:
                - Stream_StaticInit
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.3674
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked.3671
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked.3671
                - IPv4Checksum
                - Stream_Rewind.3665
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.3674
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:201,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:200,25'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:200,29'
              BranchSideFuncs:
                - Stream_StaticInit
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.3674
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked.3671
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked.3671
                - IPv4Checksum
                - Stream_Rewind.3665
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.3674
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:201,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:200,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:201,3'
              BranchSideFuncs:
                - Stream_StaticInit
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.3674
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked.3671
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked.3671
                - IPv4Checksum
                - Stream_Rewind.3665
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.3674
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:203,34'
              BranchSideFuncs:
                - Stream_StaticInit
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.3674
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked.3671
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked.3671
                - IPv4Checksum
                - Stream_Rewind.3665
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.3674
                - fwrite
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:204,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:205,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.3674
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked.3671
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked.3671
                - IPv4Checksum
                - Stream_Rewind.3665
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.3674
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:206,2'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.3674
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked.3671
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked.3671
                - IPv4Checksum
                - Stream_Rewind.3665
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.3674
                - fwrite
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:206,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:206,2'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.3674
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked.3671
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked.3671
                - IPv4Checksum
                - Stream_Rewind.3665
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.3674
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:206,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:206,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:206,2'
              BranchSideFuncs:
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.3674
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked.3671
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked.3671
                - IPv4Checksum
                - Stream_Rewind.3665
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.3674
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:206,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:207,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:207,2'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.3674
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked.3671
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked.3671
                - IPv4Checksum
                - Stream_Rewind.3665
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.3674
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:207,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:207,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:207,2'
              BranchSideFuncs:
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.3674
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked.3671
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked.3671
                - IPv4Checksum
                - Stream_Rewind.3665
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.3674
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:207,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:208,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:208,2'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.3674
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked.3671
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked.3671
                - IPv4Checksum
                - Stream_Rewind.3665
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.3674
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:208,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:208,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:208,2'
              BranchSideFuncs:
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.3674
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked.3671
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked.3671
                - IPv4Checksum
                - Stream_Rewind.3665
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.3674
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:208,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:209,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:209,2'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.3674
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked.3671
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked.3671
                - IPv4Checksum
                - Stream_Rewind.3665
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.3674
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:209,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:209,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:209,2'
              BranchSideFuncs:
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.3674
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked.3671
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked.3671
                - IPv4Checksum
                - Stream_Rewind.3665
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.3674
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:209,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:210,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:210,2'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.3674
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked.3671
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked.3671
                - IPv4Checksum
                - Stream_Rewind.3665
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.3674
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:210,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:210,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:210,2'
              BranchSideFuncs:
                - Stream_Write_UINT16_BE_unchecked.3685
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.3674
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked.3671
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked.3671
                - IPv4Checksum
                - Stream_Rewind.3665
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.3674
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:210,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:211,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:211,2'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.3674
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked.3671
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked.3671
                - IPv4Checksum
                - Stream_Rewind.3665
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.3674
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:211,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:211,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:211,2'
              BranchSideFuncs:
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.3674
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked.3671
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked.3671
                - IPv4Checksum
                - Stream_Rewind.3665
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.3674
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:211,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:212,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:212,2'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.3674
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked.3671
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked.3671
                - IPv4Checksum
                - Stream_Rewind.3665
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.3674
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:212,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:212,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:212,2'
              BranchSideFuncs:
                - Stream_Write_UINT8_unchecked.3679
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.3674
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked.3671
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked.3671
                - IPv4Checksum
                - Stream_Rewind.3665
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.3674
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:212,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:213,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:213,2'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.3674
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked.3671
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked.3671
                - IPv4Checksum
                - Stream_Rewind.3665
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.3674
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:213,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:213,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:213,2'
              BranchSideFuncs:
                - Stream_Write_UINT16_unchecked.3674
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked.3671
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked.3671
                - IPv4Checksum
                - Stream_Rewind.3665
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.3674
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:213,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:214,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:214,2'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked.3671
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked.3671
                - IPv4Checksum
                - Stream_Rewind.3665
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.3674
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:214,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:214,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:214,2'
              BranchSideFuncs:
                - Stream_Write_UINT32_BE_unchecked.3671
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked.3671
                - IPv4Checksum
                - Stream_Rewind.3665
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.3674
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:214,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:215,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:215,2'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_UINT32_BE_unchecked.3671
                - IPv4Checksum
                - Stream_Rewind.3665
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.3674
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:215,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:215,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:215,2'
              BranchSideFuncs:
                - Stream_Write_UINT32_BE_unchecked.3671
                - IPv4Checksum
                - Stream_Rewind.3665
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.3674
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:215,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:218,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:218,2'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.3674
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:218,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:218,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:218,2'
              BranchSideFuncs:
                - Stream_Write_UINT16_unchecked.3674
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:218,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:220,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:221,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:223,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:203,6'
          Dst:             Stream_StaticInit
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:206,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:206,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:206,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:207,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:207,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:207,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:208,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:208,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:208,2'
          Dst:             Stream_Write_UINT16_BE_unchecked
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:209,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:209,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:209,2'
          Dst:             Stream_Write_UINT16_BE_unchecked
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:210,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:210,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:210,2'
          Dst:             Stream_Write_UINT16_BE_unchecked
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:211,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:211,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:211,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:212,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:212,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:212,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:213,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:213,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:213,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:214,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:214,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:214,2'
          Dst:             Stream_Write_UINT32_BE_unchecked
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:215,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:215,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:215,2'
          Dst:             Stream_Write_UINT32_BE_unchecked
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:216,25'
          Dst:             IPv4Checksum
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:217,2'
          Dst:             Stream_Rewind
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:218,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:218,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:218,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:220,6'
          Dst:             fwrite
    - functionName:    WLog_PacketMessage_Write_EthernetHeader
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/PacketMessage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 151
      functionLinenumberEnd: 170
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pcap
        - ethernet
      BBCount:         30
      ICount:          136
      EdgeCount:       35
      CyclomaticComplexity: 7
      functionsReached:
        - Stream_StaticInit
        - Stream_Write
        - Stream_Write_UINT16_BE_unchecked
        - fwrite
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:157,12'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:157,16'
              BranchSideFuncs:
                - Stream_StaticInit
                - Stream_Write.3687
                - Stream_Write.3687
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:158,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:157,25'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:157,29'
              BranchSideFuncs:
                - Stream_StaticInit
                - Stream_Write.3687
                - Stream_Write.3687
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:158,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:157,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:158,3'
              BranchSideFuncs:
                - Stream_StaticInit
                - Stream_Write.3687
                - Stream_Write.3687
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:160,34'
              BranchSideFuncs:
                - Stream_StaticInit
                - Stream_Write.3687
                - Stream_Write.3687
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - fwrite
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:161,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:162,3'
              BranchSideFuncs:
                - Stream_Write.3687
                - Stream_Write.3687
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:163,15'
              BranchSideFuncs:
                - Stream_Write.3687
                - Stream_Write.3687
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - fwrite
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:165,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:165,2'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_UINT16_BE_unchecked.3685
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:165,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:165,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:165,2'
              BranchSideFuncs:
                - Stream_Write_UINT16_BE_unchecked.3685
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:165,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:166,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:167,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:169,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:160,6'
          Dst:             Stream_StaticInit
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:163,2'
          Dst:             Stream_Write
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:164,2'
          Dst:             Stream_Write
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:165,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:165,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:165,2'
          Dst:             Stream_Write_UINT16_BE_unchecked
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:166,6'
          Dst:             fwrite
    - functionName:    Pcap_Write_RecordHeader
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/PacketMessage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 52
      functionLinenumberEnd: 56
      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:53,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:53,14'
              BranchSideFuncs:
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:55,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:53,23'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:53,40'
              BranchSideFuncs:
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:55,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:53,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:54,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:55,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:53,26'
          Dst:             fwrite
    - functionName:    WLog_PacketMessage_Write
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/PacketMessage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 262
      functionLinenumberEnd: 374
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - pcap
        - data
        - length
        - flags
      BBCount:         110
      ICount:          593
      EdgeCount:       129
      CyclomaticComplexity: 21
      functionsReached:
        - Pcap_Write_RecordContent
        - Pcap_Write_RecordHeader
        - WLog_PacketMessage_Write_EthernetHeader
        - WLog_PacketMessage_Write_IPv4Header
        - WLog_PacketMessage_Write_TcpHeader
        - fflush
        - winpr_GetUnixTimeNS
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:269,12'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:269,16'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_GetUnixTimeNS
                - Pcap_Write_RecordHeader
                - WLog_PacketMessage_Write_EthernetHeader
                - WLog_PacketMessage_Write_IPv4Header
                - WLog_PacketMessage_Write_TcpHeader
                - Pcap_Write_RecordContent
                - fflush
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:270,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:269,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:270,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_GetUnixTimeNS
                - Pcap_Write_RecordHeader
                - WLog_PacketMessage_Write_EthernetHeader
                - WLog_PacketMessage_Write_IPv4Header
                - WLog_PacketMessage_Write_TcpHeader
                - Pcap_Write_RecordContent
                - fflush
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:272,6'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_GetUnixTimeNS
                - Pcap_Write_RecordHeader
                - WLog_PacketMessage_Write_EthernetHeader
                - WLog_PacketMessage_Write_IPv4Header
                - WLog_PacketMessage_Write_TcpHeader
                - Pcap_Write_RecordContent
                - fflush
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:272,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:275,12'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_GetUnixTimeNS
                - Pcap_Write_RecordHeader
                - WLog_PacketMessage_Write_EthernetHeader
                - WLog_PacketMessage_Write_IPv4Header
                - WLog_PacketMessage_Write_TcpHeader
                - Pcap_Write_RecordContent
                - fflush
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:292,12'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_GetUnixTimeNS
                - Pcap_Write_RecordHeader
                - WLog_PacketMessage_Write_EthernetHeader
                - WLog_PacketMessage_Write_IPv4Header
                - WLog_PacketMessage_Write_TcpHeader
                - Pcap_Write_RecordContent
                - fflush
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:318,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:320,8'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_GetUnixTimeNS
                - Pcap_Write_RecordHeader
                - WLog_PacketMessage_Write_EthernetHeader
                - WLog_PacketMessage_Write_IPv4Header
                - WLog_PacketMessage_Write_TcpHeader
                - Pcap_Write_RecordContent
                - fflush
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:325,8'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_GetUnixTimeNS
                - Pcap_Write_RecordHeader
                - WLog_PacketMessage_Write_EthernetHeader
                - WLog_PacketMessage_Write_IPv4Header
                - WLog_PacketMessage_Write_TcpHeader
                - Pcap_Write_RecordContent
                - fflush
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:332,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:334,24'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - 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:341,24'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - 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:336,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:336,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - 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:336,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:337,31'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:337,31'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - 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:337,31'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:337,31'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:337,31'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - 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:337,31'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - 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:337,31'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:337,31'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - 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:337,31'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - 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:337,31'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:337,31'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - 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:337,31'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:337,31'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:337,31'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - 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:337,31'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:344,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:344,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - 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:344,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:345,30'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:345,30'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - 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:345,30'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:345,30'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:345,30'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - 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:345,30'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - 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:345,30'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:345,30'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - 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:345,30'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - 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:345,30'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:345,30'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - 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:345,30'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:345,30'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:345,30'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - 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:345,30'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:357,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:357,2'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - 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:357,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:358,25'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:358,25'
              BranchSideFuncs:
                - winpr_int_assert
                - 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:358,25'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:358,25'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:358,25'
              BranchSideFuncs:
                - winpr_int_assert
                - 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:358,25'
              BranchSideFuncs:
                - winpr_int_assert
                - 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:358,25'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:358,25'
              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:358,25'
              BranchSideFuncs:
                - winpr_int_assert
                - 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:358,25'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:358,25'
              BranchSideFuncs:
                - winpr_int_assert
                - 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:358,25'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:358,25'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:358,25'
              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:358,25'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:367,53'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:368,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:371,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:368,64'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:369,43'
              BranchSideFuncs:
                - 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:369,56'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:370,42'
              BranchSideFuncs:
                - 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,54'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:370,83'
              BranchSideFuncs:
                - Pcap_Write_RecordContent
                - fflush
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:371,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:367,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:371,3'
              BranchSideFuncs:
                - fflush
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:372,15'
              BranchSideFuncs:
                - fflush
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:336,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:337,31'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:337,31'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:344,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:345,30'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:345,30'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:357,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:358,25'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:358,25'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:363,14'
          Dst:             winpr_GetUnixTimeNS
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:367,7'
          Dst:             Pcap_Write_RecordHeader
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:368,7'
          Dst:             WLog_PacketMessage_Write_EthernetHeader
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:369,7'
          Dst:             WLog_PacketMessage_Write_IPv4Header
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:370,7'
          Dst:             WLog_PacketMessage_Write_TcpHeader
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:370,58'
          Dst:             Pcap_Write_RecordContent
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:372,8'
          Dst:             fflush
    - functionName:    Pcap_Close
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/PacketMessage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 141
      functionLinenumberEnd: 148
      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:142,12'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:142,16'
              BranchSideFuncs:
                - Pcap_Flush
                - fclose
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:143,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:142,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:143,3'
              BranchSideFuncs:
                - Pcap_Flush
                - fclose
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:145,13'
              BranchSideFuncs:
                - Pcap_Flush
                - fclose
                - free
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:145,2'
          Dst:             Pcap_Flush
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:146,8'
          Dst:             fclose
    - functionName:    Pcap_Flush
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/PacketMessage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 126
      functionLinenumberEnd: 138
      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:127,12'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:127,16'
              BranchSideFuncs:
                - fflush
                - Pcap_Write_Record
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:128,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:127,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:128,3'
              BranchSideFuncs:
                - fflush
                - Pcap_Write_Record
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:130,2'
              BranchSideFuncs:
                - fflush
                - Pcap_Write_Record
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:130,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:132,26'
              BranchSideFuncs:
                - Pcap_Write_Record
                - fflush
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:137,15'
              BranchSideFuncs:
                - fflush
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:132,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:133,4'
              BranchSideFuncs:
                - fflush
                - Pcap_Write_Record
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:134,18'
              BranchSideFuncs:
                - fflush
                - Pcap_Write_Record
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:132,8'
          Dst:             Pcap_Write_Record
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:137,8'
          Dst:             fflush
    - functionName:    Pcap_Write_Record
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/PacketMessage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 66
      functionLinenumberEnd: 67
      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_RecordContent
        - Pcap_Write_RecordHeader
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:67,56'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:67,84'
              BranchSideFuncs:
                - Pcap_Write_RecordContent
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:67,56'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:67,9'
          Dst:             Pcap_Write_RecordHeader
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:67,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:    _ftelli64
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wtypes.h'
      linkageType:     InternalLinkage
      functionLinenumber: 494
      functionLinenumberEnd: 495
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - fp
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ftello64
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/wtypes.h:495,9'
          Dst:             ftello64
    - functionName:    _fseeki64
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wtypes.h'
      linkageType:     InternalLinkage
      functionLinenumber: 488
      functionLinenumberEnd: 489
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - fp
        - offset
        - origin
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fseeko64
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/wtypes.h:489,9'
          Dst:             fseeko64
    - functionName:    Pcap_Write_Header
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/PacketMessage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 45
      functionLinenumberEnd: 49
      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:46,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:46,14'
              BranchSideFuncs:
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:48,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:46,23'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:46,40'
              BranchSideFuncs:
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:48,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:46,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:47,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:48,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:46,26'
          Dst:             fwrite
    - functionName:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 216
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - tag
        - log_level
        - line
        - file
        - fkt
      BBCount:         9
      ICount:          67
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintMessageVA
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/wlog.h:206,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/wlog.h:207,30'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessageVA
            - BranchSide:      'winpr/include/winpr/wlog.h:209,26'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessageVA
        - Branch String:   'winpr/include/winpr/wlog.h:209,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/wlog.h:209,7'
              BranchSideFuncs:
                - WLog_PrintMessageVA
            - BranchSide:      'winpr/include/winpr/wlog.h:212,4'
              BranchSideFuncs:
                - WLog_PrintMessageVA
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:207,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:209,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:213,4'
          Dst:             WLog_PrintMessageVA
    - functionName:    Pcap_Open
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/PacketMessage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 71
      functionLinenumberEnd: 123
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - name
        - write
      BBCount:         25
      ICount:          187
      EdgeCount:       34
      CyclomaticComplexity: 11
      functionsReached:
        - Pcap_Read_Header
        - Pcap_Write_Header
        - WLog_Print_dbg_tag
        - _fseeki64
        - _ftelli64
        - calloc
        - fclose
        - winpr_fopen
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:75,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:77,3'
              BranchSideFuncs:
                - calloc
                - free
                - fclose
                - _fseeki64.3744
                - _ftelli64.3743
                - _fseeki64.3744
                - Pcap_Read_Header
                - Pcap_Write_Header
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:81,17'
              BranchSideFuncs:
                - calloc
                - free
                - fclose
                - _fseeki64.3744
                - _ftelli64.3743
                - _fseeki64.3744
                - Pcap_Read_Header
                - Pcap_Write_Header
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:83,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:84,3'
              BranchSideFuncs:
                - _fseeki64.3744
                - _ftelli64.3743
                - _fseeki64.3744
                - Pcap_Read_Header
                - free
                - fclose
                - Pcap_Write_Header
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:86,15'
              BranchSideFuncs:
                - _fseeki64.3744
                - _ftelli64.3743
                - _fseeki64.3744
                - Pcap_Read_Header
                - free
                - fclose
                - Pcap_Write_Header
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:91,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:93,3'
              BranchSideFuncs:
                - Pcap_Write_Header
                - free
                - fclose
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:105,17'
              BranchSideFuncs:
                - _fseeki64.3744
                - _ftelli64.3743
                - _fseeki64.3744
                - Pcap_Read_Header
                - free
                - fclose
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:100,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:101,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:102,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:105,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:106,4'
              BranchSideFuncs:
                - free
                - fclose
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:107,40'
              BranchSideFuncs:
                - _ftelli64.3743
                - _fseeki64.3744
                - Pcap_Read_Header
                - free
                - fclose
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:108,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:109,4'
              BranchSideFuncs:
                - free
                - fclose
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:110,17'
              BranchSideFuncs:
                - _fseeki64.3744
                - Pcap_Read_Header
                - free
                - fclose
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:110,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:111,4'
              BranchSideFuncs:
                - free
                - fclose
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:112,25'
              BranchSideFuncs:
                - Pcap_Read_Header
                - free
                - fclose
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:112,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:0,0'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:113,4'
              BranchSideFuncs:
                - free
                - fclose
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:119,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:120,16'
              BranchSideFuncs:
                - fclose
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:121,7'
              BranchSideFuncs:
                - free
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:73,18'
          Dst:             winpr_fopen
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:77,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:81,17'
          Dst:             calloc
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:100,8'
          Dst:             Pcap_Write_Header
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:105,7'
          Dst:             _fseeki64
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:107,30'
          Dst:             _ftelli64
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:110,7'
          Dst:             _fseeki64
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:112,8'
          Dst:             Pcap_Read_Header
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:120,9'
          Dst:             fclose
    - functionName:    IsProcessorFeaturePresentEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1088
      functionLinenumberEnd: 1302
      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:1136,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1140,13'
              BranchSideFuncs:
                - cpuid
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1152,8'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1158,8'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1164,8'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1170,8'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1184,10'
              BranchSideFuncs:
                - cpuid
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1184,10'
              BranchSideFuncs:
                - cpuid
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1184,10'
              BranchSideFuncs:
                - cpuid
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1184,10'
              BranchSideFuncs:
                - cpuid
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1184,10'
              BranchSideFuncs:
                - cpuid
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1184,10'
              BranchSideFuncs:
                - cpuid
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1250,4'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:1146,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1147,9'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1149,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:1152,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1153,9'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1155,4'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:1158,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1159,9'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1161,4'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:1164,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1165,9'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1167,4'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:1170,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1171,9'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1173,4'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:1184,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1185,5'
              BranchSideFuncs:
                - cpuid
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1188,10'
              BranchSideFuncs:
                - cpuid
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:1188,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1189,5'
              BranchSideFuncs:
                - cpuid
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1191,8'
              BranchSideFuncs:
                - cpuid
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:1196,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1198,13'
              BranchSideFuncs:
                - cpuid
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1246,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:1198,5'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1201,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1206,7'
              BranchSideFuncs:
                - cpuid
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1206,7'
              BranchSideFuncs:
                - cpuid
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1225,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1231,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1237,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1242,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:1207,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1210,13'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1215,13'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1220,9'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:1210,13'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1211,14'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1212,9'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:1215,13'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1216,14'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1217,9'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:1225,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1226,12'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1228,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:1231,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1232,12'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1234,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:1237,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1238,12'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1240,7'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:1134,2'
          Dst:             cpuid
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:1144,4'
          Dst:             cpuid
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:1206,7'
          Dst:             cpuid
    - functionName:    cpuid
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 692
      functionLinenumberEnd: 718
      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: 1075
      functionLinenumberEnd: 1083
      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:1083,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1083,9'
              BranchSideFuncs:
                - GetTickCount
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1083,9'
              BranchSideFuncs:
                - GetTickCount
      Callsites:
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:1083,9'
          Dst:             GetTickCount
    - functionName:    GetTickCount
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 335
      functionLinenumberEnd: 336
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          13
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_GetTickCount64
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:336,16'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:336,16'
              BranchSideFuncs:
                - winpr_GetTickCount64
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:336,16'
              BranchSideFuncs:
                - winpr_GetTickCount64
      Callsites:
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:336,16'
          Dst:             winpr_GetTickCount64
    - functionName:    winpr_GetTickCount64
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 576
      functionLinenumberEnd: 578
      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:577,20'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:577,15'
              BranchSideFuncs:
                - winpr_GetTickCount64NS
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:577,20'
              BranchSideFuncs:
                - winpr_GetTickCount64NS
      Callsites:
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:577,20'
          Dst:             winpr_GetTickCount64NS
    - functionName:    winpr_GetTickCount64NS
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 584
      functionLinenumberEnd: 626
      functionDepth:   0
      returnType:      size_t
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         48
      ICount:          175
      EdgeCount:       55
      CyclomaticComplexity: 9
      functionsReached:
        - clock_gettime
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:585,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:585,9'
              BranchSideFuncs:
                - clock_gettime
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:585,9'
              BranchSideFuncs:
                - clock_gettime
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:589,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:589,6'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:590,12'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:590,12'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:590,12'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:590,12'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:590,12'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:590,12'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:590,12'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:590,12'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:590,12'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:590,12'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:590,12'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:590,12'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:590,12'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:590,12'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:590,12'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:590,12'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:591,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:591,11'
              BranchSideFuncs:
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:591,11'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:591,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:591,11'
              BranchSideFuncs:
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:591,11'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:591,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:591,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:591,11'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:591,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:591,11'
              BranchSideFuncs:
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:591,11'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:591,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:591,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:591,11'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:589,6'
          Dst:             clock_gettime
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:590,12'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:590,12'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:591,11'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:591,11'
          Dst:             winpr_int_assert
    - 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: 791
      functionLinenumberEnd: 1069
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ProcessorFeature
      BBCount:         29
      ICount:          182
      EdgeCount:       32
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
        - cpuid
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:981,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:984,8'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:990,8'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:996,8'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1002,8'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1008,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1012,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1015,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1018,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1021,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1024,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1027,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1033,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1035,4'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.3816
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:984,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:985,9'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:987,4'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:990,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:991,9'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:993,4'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:996,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:997,9'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:999,4'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:1002,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1003,9'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1005,4'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:979,2'
          Dst:             cpuid
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:1035,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 216
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - tag
        - log_level
        - line
        - file
        - fkt
      BBCount:         9
      ICount:          67
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintMessageVA
      functionUses:    4
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/wlog.h:206,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/wlog.h:207,30'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessageVA
            - BranchSide:      'winpr/include/winpr/wlog.h:209,26'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessageVA
        - Branch String:   'winpr/include/winpr/wlog.h:209,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/wlog.h:209,7'
              BranchSideFuncs:
                - WLog_PrintMessageVA
            - BranchSide:      'winpr/include/winpr/wlog.h:212,4'
              BranchSideFuncs:
                - WLog_PrintMessageVA
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:207,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:209,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:213,4'
          Dst:             WLog_PrintMessageVA
    - functionName:    GetComputerNameExW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 532
      functionLinenumberEnd: 560
      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:536,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:538,3'
              BranchSideFuncs:
                - GetComputerNameExA
                - free
                - ConvertUtf8NToWChar
                - calloc
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:542,7'
              BranchSideFuncs:
                - GetComputerNameExA
                - free
                - ConvertUtf8NToWChar
                - calloc
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:542,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:544,23'
              BranchSideFuncs:
                - calloc
                - GetComputerNameExA
                - free
                - ConvertUtf8NToWChar
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:550,26'
              BranchSideFuncs:
                - GetComputerNameExA
                - free
                - ConvertUtf8NToWChar
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:546,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:547,4'
              BranchSideFuncs:
                - GetComputerNameExA
                - free
                - ConvertUtf8NToWChar
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:548,2'
              BranchSideFuncs:
                - GetComputerNameExA
                - free
                - ConvertUtf8NToWChar
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:552,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:552,14'
              BranchSideFuncs:
                - free
                - ConvertUtf8NToWChar
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:558,7'
              BranchSideFuncs:
                - free
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:552,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:554,43'
              BranchSideFuncs:
                - ConvertUtf8NToWChar
                - free
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:558,7'
              BranchSideFuncs:
                - free
      Callsites:
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:538,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:544,15'
          Dst:             calloc
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:550,7'
          Dst:             GetComputerNameExA
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:554,23'
          Dst:             ConvertUtf8NToWChar
    - functionName:    GetComputerNameExA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 476
      functionLinenumberEnd: 529
      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:480,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:482,3'
              BranchSideFuncs:
                - gethostname
                - strnlen
                - SetLastError
                - GetComputerNameA
                - GetLastError
                - SetLastError
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:486,7'
              BranchSideFuncs:
                - gethostname
                - strnlen
                - SetLastError
                - GetComputerNameA
                - GetLastError
                - SetLastError
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:486,40'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:486,44'
              BranchSideFuncs:
                - GetComputerNameA
                - GetLastError
                - SetLastError
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:488,30'
              BranchSideFuncs:
                - GetComputerNameA
                - GetLastError
                - SetLastError
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:486,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:488,30'
              BranchSideFuncs:
                - GetComputerNameA
                - GetLastError
                - SetLastError
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:499,18'
              BranchSideFuncs:
                - gethostname
                - strnlen
                - SetLastError
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:490,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:492,8'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:496,10'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:492,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:493,5'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:494,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:499,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:500,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:502,19'
              BranchSideFuncs:
                - strnlen
                - SetLastError
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:504,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:512,10'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:512,10'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:512,10'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:512,10'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:512,10'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:512,10'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:525,4'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:512,36'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:512,40'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:514,24'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:512,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:514,24'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:519,4'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:482,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:488,13'
          Dst:             GetComputerNameA
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:492,8'
          Dst:             GetLastError
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:493,5'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:499,6'
          Dst:             gethostname
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:502,11'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:515,5'
          Dst:             SetLastError
    - functionName:    GetComputerNameA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 442
      functionLinenumberEnd: 473
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpBuffer
        - lpnSize
      BBCount:         40
      ICount:          212
      EdgeCount:       49
      CyclomaticComplexity: 11
      functionsReached:
        - SetLastError
        - gethostname
        - strchr
        - strncpy
        - strnlen
        - winpr_int_assert
      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
                - strncpy
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:449,7'
              BranchSideFuncs:
                - gethostname
                - strnlen
                - strchr
                - SetLastError
                - strncpy
                - winpr_int_assert
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:450,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:451,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:453,26'
              BranchSideFuncs:
                - strnlen
                - strchr
                - SetLastError
                - strncpy
                - winpr_int_assert
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:455,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:457,25'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - SetLastError
                - strncpy
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:462,8'
              BranchSideFuncs:
                - SetLastError
                - strncpy
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:457,25'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:457,25'
              BranchSideFuncs:
                - winpr_int_assert
                - SetLastError
                - strncpy
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:457,25'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:457,25'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:457,25'
              BranchSideFuncs:
                - winpr_int_assert
                - SetLastError
                - strncpy
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:457,25'
              BranchSideFuncs:
                - winpr_int_assert
                - SetLastError
                - strncpy
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:457,25'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:457,25'
              BranchSideFuncs:
                - SetLastError
                - strncpy
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:457,25'
              BranchSideFuncs:
                - winpr_int_assert
                - SetLastError
                - strncpy
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:457,25'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:457,25'
              BranchSideFuncs:
                - winpr_int_assert
                - SetLastError
                - strncpy
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:457,25'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:457,25'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:457,25'
              BranchSideFuncs:
                - SetLastError
                - strncpy
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:457,25'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:458,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:459,13'
              BranchSideFuncs:
                - SetLastError
                - strncpy
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:460,2'
              BranchSideFuncs:
                - SetLastError
                - strncpy
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:462,34'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:462,38'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:464,3'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:462,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:464,3'
              BranchSideFuncs:
                - strncpy
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:469,10'
              BranchSideFuncs:
                - strncpy
      Callsites:
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:445,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:450,6'
          Dst:             gethostname
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:453,18'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:454,20'
          Dst:             strchr
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:457,25'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:457,25'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:464,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:469,2'
          Dst:             strncpy
    - functionName:    GetComputerNameW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 416
      functionLinenumberEnd: 439
      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:419,15'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:419,20'
              BranchSideFuncs:
                - GetComputerNameA
                - free
                - ConvertUtf8NToWChar
                - malloc
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:420,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:419,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:420,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:422,7'
              BranchSideFuncs:
                - GetComputerNameA
                - free
                - ConvertUtf8NToWChar
                - malloc
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:422,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:424,20'
              BranchSideFuncs:
                - malloc
                - GetComputerNameA
                - free
                - ConvertUtf8NToWChar
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:428,24'
              BranchSideFuncs:
                - GetComputerNameA
                - free
                - ConvertUtf8NToWChar
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:425,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:426,4'
              BranchSideFuncs:
                - GetComputerNameA
                - free
                - ConvertUtf8NToWChar
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:427,2'
              BranchSideFuncs:
                - GetComputerNameA
                - free
                - ConvertUtf8NToWChar
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:430,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:430,14'
              BranchSideFuncs:
                - free
                - ConvertUtf8NToWChar
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:436,7'
              BranchSideFuncs:
                - free
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:430,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:432,43'
              BranchSideFuncs:
                - ConvertUtf8NToWChar
                - free
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:436,7'
              BranchSideFuncs:
                - free
      Callsites:
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:428,7'
          Dst:             GetComputerNameA
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:432,23'
          Dst:             ConvertUtf8NToWChar
    - functionName:    GetSystemTimeAdjustment
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 324
      functionLinenumberEnd: 327
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpTimeAdjustment
        - lpTimeIncrement
        - lpTimeAdjustmentDisabled
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:326,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    GetSystemTimeAsFileTime
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 310
      functionLinenumberEnd: 319
      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:317,11'
          Dst:             winpr_GetUnixTimeNS
    - functionName:    winpr_GetUnixTimeNS
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 630
      functionLinenumberEnd: 652
      functionDepth:   0
      returnType:      size_t
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         48
      ICount:          174
      EdgeCount:       55
      CyclomaticComplexity: 9
      functionsReached:
        - clock_gettime
        - winpr_int_assert
      functionUses:    5
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:641,18'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:641,18'
              BranchSideFuncs:
                - clock_gettime
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:641,18'
              BranchSideFuncs:
                - clock_gettime
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:642,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:643,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:644,9'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:644,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:644,9'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:644,9'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:644,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:644,9'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:644,9'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:644,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:644,9'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:644,9'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:644,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:644,9'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:644,9'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:644,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:644,9'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:644,9'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:645,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:645,9'
              BranchSideFuncs:
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:645,9'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:645,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:645,9'
              BranchSideFuncs:
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:645,9'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:645,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:645,9'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:645,9'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:645,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:645,9'
              BranchSideFuncs:
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:645,9'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:645,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:645,9'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:645,9'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:642,6'
          Dst:             clock_gettime
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:644,9'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:644,9'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:645,9'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:645,9'
          Dst:             winpr_int_assert
    - functionName:    SetLocalTime
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 303
      functionLinenumberEnd: 306
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpSystemTime
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:305,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    GetLocalTime
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 278
      functionLinenumberEnd: 300
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpSystemTime
      BBCount:         6
      ICount:          108
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - localtime_r
        - winpr_GetUnixTimeNS
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:289,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:289,6'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:291,32'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:283,15'
          Dst:             winpr_GetUnixTimeNS
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:286,8'
          Dst:             localtime_r
    - 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: 271
      functionLinenumberEnd: 274
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpSystemTime
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:273,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    GetSystemTime
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 246
      functionLinenumberEnd: 268
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpSystemTime
      BBCount:         6
      ICount:          108
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - gmtime_r
        - winpr_GetUnixTimeNS
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:257,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:257,6'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:259,32'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:251,15'
          Dst:             winpr_GetUnixTimeNS
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:254,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: 241
      functionLinenumberEnd: 243
      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:242,2'
          Dst:             GetSystemInfo
    - functionName:    GetSystemInfo
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 229
      functionLinenumberEnd: 238
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpSystemInfo
      BBCount:         9
      ICount:          47
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - GetNumberOfProcessors
        - GetProcessorArchitecture
        - GetSystemPageSize
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:231,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:231,2'
              BranchSideFuncs:
                - GetProcessorArchitecture
                - GetSystemPageSize
                - GetNumberOfProcessors
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:231,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:231,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:235,6'
          Dst:             GetProcessorArchitecture
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:236,29'
          Dst:             GetSystemPageSize
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:237,39'
          Dst:             GetNumberOfProcessors
    - functionName:    GetProcessorArchitecture
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 112
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      short
      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: 203
      functionLinenumberEnd: 225
      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:204,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:204,8'
              BranchSideFuncs:
                - sysconf
                - sysconf
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:204,8'
              BranchSideFuncs:
                - sysconf
                - sysconf
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:208,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:209,18'
              BranchSideFuncs:
                - sysconf
                - sysconf
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:214,6'
              BranchSideFuncs:
                - sysconf
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:214,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:215,18'
              BranchSideFuncs:
                - sysconf
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:219,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:219,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:220,23'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:222,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:222,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:222,6'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:223,14'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:209,18'
          Dst:             sysconf
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:215,18'
          Dst:             sysconf
    - functionName:    GetNumberOfProcessors
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 165
      functionLinenumberEnd: 199
      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:166,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:166,8'
              BranchSideFuncs:
                - sysconf
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:166,8'
              BranchSideFuncs:
                - sysconf
      Callsites:
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:171,19'
          Dst:             sysconf
    - functionName:    SetHandleInformation
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/handle/handle.c'
      linkageType:     InternalLinkage
      functionLinenumber: 82
      functionLinenumberEnd: 84
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - hObject
        - dwMask
        - dwFlags
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/handle/handle.c:83,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 216
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - tag
        - log_level
        - line
        - file
        - fkt
      BBCount:         9
      ICount:          67
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintMessageVA
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/wlog.h:206,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/wlog.h:207,30'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessageVA
            - BranchSide:      'winpr/include/winpr/wlog.h:209,26'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessageVA
        - Branch String:   'winpr/include/winpr/wlog.h:209,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/wlog.h:209,7'
              BranchSideFuncs:
                - WLog_PrintMessageVA
            - BranchSide:      'winpr/include/winpr/wlog.h:212,4'
              BranchSideFuncs:
                - WLog_PrintMessageVA
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:207,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:209,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:213,4'
          Dst:             WLog_PrintMessageVA
    - functionName:    GetHandleInformation
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/handle/handle.c'
      linkageType:     InternalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 77
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - hObject
        - lpdwFlags
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/handle/handle.c:76,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    DuplicateHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/handle/handle.c'
      linkageType:     InternalLinkage
      functionLinenumber: 69
      functionLinenumberEnd: 71
      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,48'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/handle/nonehandle.c:73,21'
              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:         25
      ICount:          132
      EdgeCount:       28
      CyclomaticComplexity: 5
      functionsReached:
        - pthread_mutex_lock
        - pthread_mutex_unlock
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/apc.c:248,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/apc.c:248,2'
              BranchSideFuncs:
                - winpr_int_assert
                - pthread_mutex_lock
                - pthread_mutex_unlock
                - free
            - BranchSide:      'winpr/libwinpr/thread/apc.c:248,2'
              BranchSideFuncs:
                - winpr_int_assert
        - 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:251,2'
              BranchSideFuncs:
                - winpr_int_assert
        - 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:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/apc.c:251,2'
          Dst:             winpr_int_assert
        - 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:         47
      ICount:          254
      EdgeCount:       57
      CyclomaticComplexity: 12
      functionsReached:
        - apc_item_remove
        - pollset_isSignaled
        - pthread_mutex_lock
        - pthread_mutex_unlock
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/apc.c:194,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/apc.c:194,2'
              BranchSideFuncs:
                - winpr_int_assert
                - pthread_mutex_lock
                - pthread_mutex_unlock
                - apc_item_remove
                - free
                - pollset_isSignaled
            - BranchSide:      'winpr/libwinpr/thread/apc.c:194,2'
              BranchSideFuncs:
                - winpr_int_assert
        - 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:197,2'
              BranchSideFuncs:
                - winpr_int_assert
        - 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:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/apc.c:197,2'
          Dst:             winpr_int_assert
        - 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:         21
      ICount:          100
      EdgeCount:       23
      CyclomaticComplexity: 4
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/apc.c:97,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/apc.c:97,2'
              BranchSideFuncs:
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/thread/apc.c:97,2'
              BranchSideFuncs:
                - winpr_int_assert
        - 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:98,2'
              BranchSideFuncs:
                - winpr_int_assert
        - 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:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/apc.c:98,2'
          Dst:             winpr_int_assert
    - 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:         31
      ICount:          131
      EdgeCount:       34
      CyclomaticComplexity: 5
      functionsReached:
        - pollset_add
        - pthread_mutex_lock
        - pthread_mutex_unlock
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/apc.c:162,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/apc.c:162,2'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - pthread_mutex_lock
                - pthread_mutex_unlock
                - pollset_add
            - BranchSide:      'winpr/libwinpr/thread/apc.c:162,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/thread/apc.c:163,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/apc.c:163,2'
              BranchSideFuncs:
                - winpr_int_assert
                - pthread_mutex_lock
                - pthread_mutex_unlock
                - pollset_add
            - BranchSide:      'winpr/libwinpr/thread/apc.c:163,2'
              BranchSideFuncs:
                - winpr_int_assert
        - 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:166,2'
              BranchSideFuncs:
                - winpr_int_assert
        - 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:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/apc.c:163,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/apc.c:166,2'
          Dst:             winpr_int_assert
        - 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:         25
      ICount:          123
      EdgeCount:       29
      CyclomaticComplexity: 6
      functionsReached:
        - GetCurrentThreadId
        - WLog_Print_dbg_tag
        - apc_item_remove
        - pthread_mutex_lock
        - pthread_mutex_unlock
        - winpr_GetCurrentThread
        - winpr_int_assert
      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_Print_dbg_tag.3903
                - winpr_int_assert
                - pthread_mutex_lock
                - apc_item_remove
                - pthread_mutex_unlock
                - WLog_Print_dbg_tag.3903
            - BranchSide:      'winpr/libwinpr/thread/apc.c:119,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/thread/apc.c:121,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/apc.c:122,3'
              BranchSideFuncs:
                - GetCurrentThreadId
                - WLog_Print_dbg_tag.3903
                - winpr_int_assert
                - pthread_mutex_lock
                - apc_item_remove
                - pthread_mutex_unlock
                - WLog_Print_dbg_tag.3903
            - BranchSide:      'winpr/libwinpr/thread/apc.c:124,6'
              BranchSideFuncs:
                - GetCurrentThreadId
                - WLog_Print_dbg_tag.3903
                - winpr_int_assert
                - pthread_mutex_lock
                - apc_item_remove
                - pthread_mutex_unlock
                - WLog_Print_dbg_tag.3903
        - Branch String:   'winpr/libwinpr/thread/apc.c:124,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/apc.c:126,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.3903
            - BranchSide:      'winpr/libwinpr/thread/apc.c:130,7'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.3903
                - winpr_int_assert
                - pthread_mutex_lock
                - apc_item_remove
                - pthread_mutex_unlock
        - Branch String:   'winpr/libwinpr/thread/apc.c:130,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/apc.c:132,3'
              BranchSideFuncs:
                - winpr_int_assert
                - pthread_mutex_lock
                - apc_item_remove
                - pthread_mutex_unlock
            - BranchSide:      'winpr/libwinpr/thread/apc.c:136,9'
              BranchSideFuncs:
                - winpr_int_assert
                - pthread_mutex_lock
                - apc_item_remove
                - pthread_mutex_unlock
        - 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:137,2'
              BranchSideFuncs:
                - winpr_int_assert
        - 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:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/apc.c:124,27'
          Dst:             GetCurrentThreadId
        - Src:             'winpr/libwinpr/thread/apc.c:126,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/thread/apc.c:132,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/thread/apc.c:137,2'
          Dst:             winpr_int_assert
        - 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:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 216
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - tag
        - log_level
        - line
        - file
        - fkt
      BBCount:         9
      ICount:          67
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintMessageVA
      functionUses:    4
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/wlog.h:206,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/wlog.h:207,30'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessageVA
            - BranchSide:      'winpr/include/winpr/wlog.h:209,26'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessageVA
        - Branch String:   'winpr/include/winpr/wlog.h:209,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/wlog.h:209,7'
              BranchSideFuncs:
                - WLog_PrintMessageVA
            - BranchSide:      'winpr/include/winpr/wlog.h:212,4'
              BranchSideFuncs:
                - WLog_PrintMessageVA
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:207,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:209,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:213,4'
          Dst:             WLog_PrintMessageVA
    - 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:         24
      ICount:          117
      EdgeCount:       25
      CyclomaticComplexity: 3
      functionsReached:
        - GetCurrentThreadId
        - pthread_mutex_lock
        - pthread_mutex_unlock
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/apc.c:68,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/apc.c:68,2'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - pthread_mutex_lock
                - GetCurrentThreadId
                - pthread_mutex_unlock
            - BranchSide:      'winpr/libwinpr/thread/apc.c:68,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/thread/apc.c:69,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/apc.c:69,2'
              BranchSideFuncs:
                - winpr_int_assert
                - pthread_mutex_lock
                - GetCurrentThreadId
                - pthread_mutex_unlock
            - BranchSide:      'winpr/libwinpr/thread/apc.c:69,2'
              BranchSideFuncs:
                - winpr_int_assert
        - 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:72,2'
              BranchSideFuncs:
                - winpr_int_assert
        - 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:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/apc.c:69,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/apc.c:72,2'
          Dst:             winpr_int_assert
        - 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:         9
      ICount:          35
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - pthread_mutex_destroy
        - winpr_int_assert
      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:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/thread/apc.c:59,2'
          Dst:             winpr_int_assert
        - 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:         15
      ICount:          67
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
        - pthread_mutex_init
        - pthread_mutexattr_destroy
        - pthread_mutexattr_init
        - pthread_mutexattr_settype
        - winpr_int_assert
      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_Print_dbg_tag.3903
                - WLog_Print_dbg_tag.3903
            - BranchSide:      'winpr/libwinpr/thread/apc.c:34,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/thread/apc.c:37,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/apc.c:39,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.3903
            - BranchSide:      'winpr/libwinpr/thread/apc.c:43,9'
              BranchSideFuncs:
                - pthread_mutex_init
                - pthread_mutexattr_destroy
                - WLog_Print_dbg_tag.3903
        - Branch String:   'winpr/libwinpr/thread/apc.c:45,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/apc.c:47,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.3903
                - pthread_mutexattr_destroy
            - BranchSide:      'winpr/libwinpr/thread/apc.c:51,6'
              BranchSideFuncs:
                - pthread_mutexattr_destroy
      Callsites:
        - Src:             'winpr/libwinpr/thread/apc.c:34,2'
          Dst:             winpr_int_assert
        - 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_Print_dbg_tag
        - Src:             'winpr/libwinpr/thread/apc.c:45,6'
          Dst:             pthread_mutex_init
        - Src:             'winpr/libwinpr/thread/apc.c:47,3'
          Dst:             WLog_Print_dbg_tag
        - 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: 277
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpCmdLine
        - pNumArgs
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/argv.c:276,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 216
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - tag
        - log_level
        - line
        - file
        - fkt
      BBCount:         9
      ICount:          67
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintMessageVA
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/wlog.h:206,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/wlog.h:207,30'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessageVA
            - BranchSide:      'winpr/include/winpr/wlog.h:209,26'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessageVA
        - Branch String:   'winpr/include/winpr/wlog.h:209,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/wlog.h:209,7'
              BranchSideFuncs:
                - WLog_PrintMessageVA
            - BranchSide:      'winpr/include/winpr/wlog.h:212,4'
              BranchSideFuncs:
                - WLog_PrintMessageVA
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:207,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:209,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:213,4'
          Dst:             WLog_PrintMessageVA
    - 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:         136
      ICount:          839
      EdgeCount:       169
      CyclomaticComplexity: 35
      functionsReached:
        - WLog_Print_dbg_tag
        - calloc
        - strcspn
        - strlen
        - strspn
        - strstr
        - winpr_int_assert
      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_Print_dbg_tag.3922
                - winpr_int_assert
                - winpr_int_assert
                - strcspn
                - strspn
                - calloc
                - free
                - strlen
                - strstr
                - strlen
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/thread/argv.c:108,7'
              BranchSideFuncs:
                - strlen
                - calloc
                - strstr
                - calloc
                - free
                - free
                - free
                - free
                - strcspn
                - strcspn
                - strspn
                - strcspn
                - WLog_Print_dbg_tag.3922
                - winpr_int_assert
                - winpr_int_assert
                - strcspn
                - strspn
                - calloc
                - free
                - strlen
                - strstr
                - strlen
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
        - 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_Print_dbg_tag.3922
                - winpr_int_assert
                - winpr_int_assert
                - strcspn
                - strspn
                - calloc
                - free
                - strlen
                - strstr
                - strlen
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/thread/argv.c:111,8'
              BranchSideFuncs:
                - strlen
                - calloc
                - strstr
                - calloc
                - free
                - free
                - free
                - free
                - strcspn
                - strcspn
                - strspn
                - strcspn
                - WLog_Print_dbg_tag.3922
                - winpr_int_assert
                - winpr_int_assert
                - strcspn
                - strspn
                - calloc
                - free
                - strlen
                - strstr
                - strlen
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
        - 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_Print_dbg_tag.3922
                - winpr_int_assert
                - winpr_int_assert
                - strcspn
                - strspn
                - calloc
                - free
                - strlen
                - strstr
                - strlen
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/thread/argv.c:119,13'
              BranchSideFuncs:
                - strstr
                - calloc
                - free
                - free
                - free
                - free
                - strcspn
                - strcspn
                - strspn
                - strcspn
                - WLog_Print_dbg_tag.3922
                - winpr_int_assert
                - winpr_int_assert
                - strcspn
                - strspn
                - calloc
                - free
                - strlen
                - strstr
                - strlen
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
        - 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_Print_dbg_tag.3922
                - winpr_int_assert
                - winpr_int_assert
                - strcspn
                - strspn
                - strstr
                - strlen
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/thread/argv.c:183,13'
              BranchSideFuncs:
                - calloc
                - free
                - free
                - free
                - free
                - strcspn
                - strcspn
                - strspn
                - strcspn
                - WLog_Print_dbg_tag.3922
                - winpr_int_assert
                - winpr_int_assert
                - 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_Print_dbg_tag.3922
                - winpr_int_assert
                - winpr_int_assert
                - strcspn
                - strspn
                - strstr
                - strlen
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/thread/argv.c:131,20'
              BranchSideFuncs:
                - strlen
                - calloc
                - free
                - free
                - free
                - free
                - strcspn
                - strcspn
                - strspn
                - strcspn
                - WLog_Print_dbg_tag.3922
                - winpr_int_assert
                - winpr_int_assert
                - strcspn
                - strspn
                - strstr
                - strlen
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
        - 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_Print_dbg_tag.3922
                - winpr_int_assert
                - winpr_int_assert
                - strcspn
                - strspn
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/thread/argv.c:178,11'
              BranchSideFuncs:
                - strlen
                - calloc
                - free
                - free
                - free
                - free
                - strcspn
                - strcspn
                - strspn
                - strcspn
                - WLog_Print_dbg_tag.3922
                - winpr_int_assert
                - winpr_int_assert
                - strcspn
                - strspn
        - Branch String:   'winpr/libwinpr/thread/argv.c:139,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/argv.c:141,21'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - strlen
                - calloc
                - free
                - free
                - free
                - free
                - strcspn
                - strcspn
                - strspn
                - strcspn
                - WLog_Print_dbg_tag.3922
                - winpr_int_assert
                - winpr_int_assert
                - strcspn
                - strspn
                - strstr
                - strlen
            - BranchSide:      'winpr/libwinpr/thread/argv.c:147,11'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - strlen
                - calloc
                - free
                - free
                - free
                - free
                - strcspn
                - strcspn
                - strspn
                - strcspn
                - WLog_Print_dbg_tag.3922
                - winpr_int_assert
                - winpr_int_assert
                - strcspn
                - strspn
                - strstr
                - strlen
        - Branch String:   'winpr/libwinpr/thread/argv.c:149,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/argv.c:151,10'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - strlen
                - calloc
                - free
                - free
                - free
                - free
                - strcspn
                - strcspn
                - strspn
                - strcspn
                - WLog_Print_dbg_tag.3922
                - winpr_int_assert
                - winpr_int_assert
                - strcspn
                - strspn
                - strstr
                - strlen
            - BranchSide:      'winpr/libwinpr/thread/argv.c:160,8'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - strlen
                - calloc
                - free
                - free
                - free
                - free
                - strcspn
                - strcspn
                - strspn
                - strcspn
                - WLog_Print_dbg_tag.3922
                - winpr_int_assert
                - winpr_int_assert
                - strcspn
                - strspn
                - strstr
                - strlen
        - Branch String:   'winpr/libwinpr/thread/argv.c:151,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/argv.c:153,10'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - strlen
                - calloc
                - free
                - free
                - free
                - free
                - strcspn
                - strcspn
                - strspn
                - strcspn
                - WLog_Print_dbg_tag.3922
                - winpr_int_assert
                - winpr_int_assert
                - strcspn
                - strspn
                - strstr
                - strlen
            - BranchSide:      'winpr/libwinpr/thread/argv.c:157,9'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - strlen
                - calloc
                - free
                - free
                - free
                - free
                - strcspn
                - strcspn
                - strspn
                - strcspn
                - WLog_Print_dbg_tag.3922
                - winpr_int_assert
                - winpr_int_assert
                - strcspn
                - strspn
                - strstr
                - strlen
        - Branch String:   'winpr/libwinpr/thread/argv.c:160,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/argv.c:160,8'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - strlen
                - calloc
                - free
                - free
                - free
                - free
                - strcspn
                - strcspn
                - strspn
                - strcspn
                - WLog_Print_dbg_tag.3922
                - winpr_int_assert
                - winpr_int_assert
                - strcspn
                - strspn
                - strstr
                - strlen
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/thread/argv.c:160,8'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/thread/argv.c:160,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/argv.c:160,8'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - strlen
                - calloc
                - free
                - free
                - free
                - free
                - strcspn
                - strcspn
                - strspn
                - strcspn
                - WLog_Print_dbg_tag.3922
                - winpr_int_assert
                - winpr_int_assert
                - strcspn
                - strspn
                - strstr
                - strlen
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/thread/argv.c:160,8'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - strlen
                - calloc
                - free
                - free
                - free
                - free
                - strcspn
                - strcspn
                - strspn
                - strcspn
                - WLog_Print_dbg_tag.3922
                - winpr_int_assert
                - winpr_int_assert
                - strcspn
                - strspn
                - strstr
                - strlen
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/thread/argv.c:160,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/argv.c:160,8'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - strlen
                - calloc
                - free
                - free
                - free
                - free
                - strcspn
                - strcspn
                - strspn
                - strcspn
                - WLog_Print_dbg_tag.3922
                - winpr_int_assert
                - winpr_int_assert
                - strcspn
                - strspn
                - strstr
                - strlen
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/thread/argv.c:160,8'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - strlen
                - calloc
                - free
                - free
                - free
                - free
                - strcspn
                - strcspn
                - strspn
                - strcspn
                - WLog_Print_dbg_tag.3922
                - winpr_int_assert
                - winpr_int_assert
                - strcspn
                - strspn
                - strstr
                - strlen
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/thread/argv.c:160,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/argv.c:160,8'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - strlen
                - calloc
                - free
                - free
                - free
                - free
                - strcspn
                - strcspn
                - strspn
                - strcspn
                - WLog_Print_dbg_tag.3922
                - winpr_int_assert
                - winpr_int_assert
                - strcspn
                - strspn
                - strstr
                - strlen
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/thread/argv.c:160,8'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/thread/argv.c:160,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/argv.c:160,8'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - strlen
                - calloc
                - free
                - free
                - free
                - free
                - strcspn
                - strcspn
                - strspn
                - strcspn
                - WLog_Print_dbg_tag.3922
                - winpr_int_assert
                - winpr_int_assert
                - strcspn
                - strspn
                - strstr
                - strlen
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/thread/argv.c:160,8'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/thread/argv.c:161,13'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/argv.c:161,13'
              BranchSideFuncs:
                - winpr_int_assert
                - strlen
                - calloc
                - free
                - free
                - free
                - free
                - strcspn
                - strcspn
                - strspn
                - strcspn
                - WLog_Print_dbg_tag.3922
                - winpr_int_assert
                - winpr_int_assert
                - strcspn
                - strspn
                - strstr
                - strlen
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/thread/argv.c:161,13'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/thread/argv.c:161,13'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/argv.c:161,13'
              BranchSideFuncs:
                - winpr_int_assert
                - strlen
                - calloc
                - free
                - free
                - free
                - free
                - strcspn
                - strcspn
                - strspn
                - strcspn
                - WLog_Print_dbg_tag.3922
                - winpr_int_assert
                - winpr_int_assert
                - strcspn
                - strspn
                - strstr
                - strlen
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/thread/argv.c:161,13'
              BranchSideFuncs:
                - winpr_int_assert
                - strlen
                - calloc
                - free
                - free
                - free
                - free
                - strcspn
                - strcspn
                - strspn
                - strcspn
                - WLog_Print_dbg_tag.3922
                - winpr_int_assert
                - winpr_int_assert
                - strcspn
                - strspn
                - strstr
                - strlen
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/thread/argv.c:161,13'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/argv.c:161,13'
              BranchSideFuncs:
                - strlen
                - calloc
                - free
                - free
                - free
                - free
                - strcspn
                - strcspn
                - strspn
                - strcspn
                - WLog_Print_dbg_tag.3922
                - winpr_int_assert
                - winpr_int_assert
                - strcspn
                - strspn
                - strstr
                - strlen
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/thread/argv.c:161,13'
              BranchSideFuncs:
                - winpr_int_assert
                - strlen
                - calloc
                - free
                - free
                - free
                - free
                - strcspn
                - strcspn
                - strspn
                - strcspn
                - WLog_Print_dbg_tag.3922
                - winpr_int_assert
                - winpr_int_assert
                - strcspn
                - strspn
                - strstr
                - strlen
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/thread/argv.c:161,13'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/argv.c:161,13'
              BranchSideFuncs:
                - winpr_int_assert
                - strlen
                - calloc
                - free
                - free
                - free
                - free
                - strcspn
                - strcspn
                - strspn
                - strcspn
                - WLog_Print_dbg_tag.3922
                - winpr_int_assert
                - winpr_int_assert
                - strcspn
                - strspn
                - strstr
                - strlen
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/thread/argv.c:161,13'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/thread/argv.c:161,13'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/argv.c:161,13'
              BranchSideFuncs:
                - strlen
                - calloc
                - free
                - free
                - free
                - free
                - strcspn
                - strcspn
                - strspn
                - strcspn
                - WLog_Print_dbg_tag.3922
                - winpr_int_assert
                - winpr_int_assert
                - strcspn
                - strspn
                - strstr
                - strlen
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/thread/argv.c:161,13'
              BranchSideFuncs:
                - winpr_int_assert
        - 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_Print_dbg_tag.3922
                - winpr_int_assert
                - winpr_int_assert
                - strcspn
                - strspn
                - strstr
                - strlen
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/thread/argv.c:169,9'
              BranchSideFuncs:
                - strlen
                - calloc
                - free
                - free
                - free
                - free
                - strcspn
                - strcspn
                - strspn
                - strcspn
                - WLog_Print_dbg_tag.3922
                - winpr_int_assert
                - winpr_int_assert
                - strcspn
                - strspn
                - strstr
                - strlen
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
        - 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_Print_dbg_tag.3922
                - winpr_int_assert
                - winpr_int_assert
                - strcspn
                - strspn
                - strstr
                - strlen
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/thread/argv.c:174,12'
              BranchSideFuncs:
                - strlen
                - calloc
                - free
                - free
                - free
                - free
                - strcspn
                - strcspn
                - strspn
                - strcspn
                - WLog_Print_dbg_tag.3922
                - winpr_int_assert
                - winpr_int_assert
                - strcspn
                - strspn
                - strstr
                - strlen
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
        - 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_Print_dbg_tag.3922
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/thread/argv.c:193,19'
              BranchSideFuncs:
                - calloc
                - free
                - free
                - free
                - free
                - strcspn
                - strcspn
                - strspn
                - strcspn
                - WLog_Print_dbg_tag.3922
                - winpr_int_assert
                - winpr_int_assert
        - 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_Print_dbg_tag.3922
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/thread/argv.c:203,18'
              BranchSideFuncs:
                - free
                - free
                - strcspn
                - strcspn
                - strspn
                - strcspn
                - WLog_Print_dbg_tag.3922
                - winpr_int_assert
                - winpr_int_assert
        - 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_Print_dbg_tag.3922
                - winpr_int_assert
                - winpr_int_assert
            - 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_Print_dbg_tag.3922
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/thread/argv.c:216,5'
              BranchSideFuncs:
                - strcspn
                - strspn
                - free
                - free
                - strcspn
                - strcspn
                - WLog_Print_dbg_tag.3922
                - winpr_int_assert
                - winpr_int_assert
        - 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_Print_dbg_tag.3922
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/thread/argv.c:218,5'
              BranchSideFuncs:
                - strcspn
                - strcspn
                - strspn
                - free
                - free
                - strcspn
                - WLog_Print_dbg_tag.3922
                - winpr_int_assert
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/thread/argv.c:221,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/argv.c:224,13'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - strspn
                - free
                - free
                - strcspn
                - strcspn
                - strcspn
                - WLog_Print_dbg_tag.3922
            - BranchSide:      'winpr/libwinpr/thread/argv.c:232,5'
              BranchSideFuncs:
                - strcspn
                - strspn
                - free
                - free
                - strcspn
                - winpr_int_assert
                - winpr_int_assert
                - strcspn
                - WLog_Print_dbg_tag.3922
        - Branch String:   'winpr/libwinpr/thread/argv.c:224,13'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/argv.c:224,13'
              BranchSideFuncs:
                - winpr_int_assert
                - strspn
                - free
                - free
                - strcspn
                - strcspn
                - strcspn
                - WLog_Print_dbg_tag.3922
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/thread/argv.c:224,13'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/thread/argv.c:224,13'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/argv.c:224,13'
              BranchSideFuncs:
                - winpr_int_assert
                - strspn
                - free
                - free
                - strcspn
                - strcspn
                - strcspn
                - WLog_Print_dbg_tag.3922
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/thread/argv.c:224,13'
              BranchSideFuncs:
                - winpr_int_assert
                - strspn
                - free
                - free
                - strcspn
                - strcspn
                - strcspn
                - WLog_Print_dbg_tag.3922
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/thread/argv.c:224,13'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/argv.c:224,13'
              BranchSideFuncs:
                - strspn
                - free
                - free
                - strcspn
                - strcspn
                - strcspn
                - WLog_Print_dbg_tag.3922
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/thread/argv.c:224,13'
              BranchSideFuncs:
                - winpr_int_assert
                - strspn
                - free
                - free
                - strcspn
                - strcspn
                - strcspn
                - WLog_Print_dbg_tag.3922
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/thread/argv.c:224,13'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/argv.c:224,13'
              BranchSideFuncs:
                - winpr_int_assert
                - strspn
                - free
                - free
                - strcspn
                - strcspn
                - strcspn
                - WLog_Print_dbg_tag.3922
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/thread/argv.c:224,13'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/thread/argv.c:224,13'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/argv.c:224,13'
              BranchSideFuncs:
                - strspn
                - free
                - free
                - strcspn
                - strcspn
                - strcspn
                - WLog_Print_dbg_tag.3922
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/thread/argv.c:224,13'
              BranchSideFuncs:
                - winpr_int_assert
        - 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
                - winpr_int_assert
                - winpr_int_assert
                - strcspn
                - WLog_Print_dbg_tag.3922
            - BranchSide:      'winpr/libwinpr/thread/argv.c:239,6'
              BranchSideFuncs:
                - strspn
                - free
                - free
                - strcspn
                - strcspn
                - winpr_int_assert
                - winpr_int_assert
                - strcspn
                - WLog_Print_dbg_tag.3922
        - 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
                - winpr_int_assert
                - winpr_int_assert
                - strcspn
                - WLog_Print_dbg_tag.3922
            - BranchSide:      'winpr/libwinpr/thread/argv.c:241,6'
              BranchSideFuncs:
                - strcspn
                - strspn
                - free
                - free
                - strcspn
                - winpr_int_assert
                - winpr_int_assert
                - strcspn
                - WLog_Print_dbg_tag.3922
        - Branch String:   'winpr/libwinpr/thread/argv.c:244,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/argv.c:245,5'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.3922
                - strspn
                - free
                - free
                - strcspn
                - strcspn
                - winpr_int_assert
                - winpr_int_assert
                - strcspn
            - BranchSide:      'winpr/libwinpr/thread/argv.c:247,8'
              BranchSideFuncs:
                - strspn
                - free
                - free
                - strcspn
                - strcspn
                - WLog_Print_dbg_tag.3922
                - winpr_int_assert
                - winpr_int_assert
                - strcspn
        - Branch String:   'winpr/libwinpr/thread/argv.c:247,13'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/argv.c:247,16'
              BranchSideFuncs:
                - strspn
                - free
                - free
                - strcspn
                - strcspn
                - WLog_Print_dbg_tag.3922
                - winpr_int_assert
                - winpr_int_assert
                - strcspn
            - BranchSide:      'winpr/libwinpr/thread/argv.c:250,23'
              BranchSideFuncs:
                - strspn
                - free
                - free
                - strcspn
                - strcspn
                - strcspn
                - WLog_Print_dbg_tag.3922
                - winpr_int_assert
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/thread/argv.c:247,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/argv.c:248,23'
              BranchSideFuncs:
                - strcspn
                - strspn
                - free
                - free
                - strcspn
                - strcspn
                - WLog_Print_dbg_tag.3922
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/thread/argv.c:250,23'
              BranchSideFuncs:
                - strspn
                - free
                - free
                - strcspn
                - strcspn
                - strcspn
                - WLog_Print_dbg_tag.3922
                - winpr_int_assert
                - winpr_int_assert
        - 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_Print_dbg_tag.3922
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/thread/argv.c:260,12'
              BranchSideFuncs:
                - strspn
                - free
                - free
                - strcspn
                - strcspn
                - strcspn
                - WLog_Print_dbg_tag.3922
                - winpr_int_assert
                - winpr_int_assert
        - 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_Print_dbg_tag.3922
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/thread/argv.c:257,9'
              BranchSideFuncs:
                - strspn
                - free
                - free
                - strcspn
                - strcspn
                - strcspn
                - WLog_Print_dbg_tag.3922
                - winpr_int_assert
                - winpr_int_assert
      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:160,8'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/argv.c:160,8'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/argv.c:161,13'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/argv.c:161,13'
          Dst:             winpr_int_assert
        - 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:224,13'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/argv.c:224,13'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/argv.c:236,10'
          Dst:             strcspn
        - Src:             'winpr/libwinpr/thread/argv.c:245,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/thread/argv.c:248,14'
          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: 226
      functionLinenumberEnd: 234
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - bundle
      BBCount:         9
      ICount:          40
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - pthread_cond_destroy
        - pthread_mutex_destroy
        - run_cond_fkt_
        - run_mutex_fkt_
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/thread.c:229,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:229,2'
              BranchSideFuncs:
                - run_cond_fkt_
                - run_mutex_fkt_
            - BranchSide:      'winpr/libwinpr/thread/thread.c:229,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:229,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/thread.c:231,2'
          Dst:             run_cond_fkt_
        - Src:             'winpr/libwinpr/thread/thread.c:231,2'
          Dst:             pthread_cond_destroy
        - Src:             'winpr/libwinpr/thread/thread.c:232,2'
          Dst:             run_mutex_fkt_
        - Src:             'winpr/libwinpr/thread/thread.c:232,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: 190
      functionLinenumberEnd: 202
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - fkt
        - name
        - condition
      BBCount:         18
      ICount:          77
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_int_assert
        - winpr_strerror
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/thread.c:193,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:193,2'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_strerror
                - WLog_Print_dbg_tag.4039
            - BranchSide:      'winpr/libwinpr/thread/thread.c:193,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/thread/thread.c:194,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:194,2'
              BranchSideFuncs:
                - winpr_strerror
                - WLog_Print_dbg_tag.4039
            - BranchSide:      'winpr/libwinpr/thread/thread.c:194,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/thread/thread.c:197,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:197,6'
              BranchSideFuncs:
                - winpr_strerror
                - WLog_Print_dbg_tag.4039
            - BranchSide:      'winpr/libwinpr/thread/thread.c:199,8'
              BranchSideFuncs:
                - winpr_strerror
                - WLog_Print_dbg_tag.4039
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:193,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/thread.c:194,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/thread.c:200,3'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/thread/thread.c:200,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    run_mutex_fkt_
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 154
      functionLinenumberEnd: 166
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - fkt
        - name
        - mutex
      BBCount:         18
      ICount:          77
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_int_assert
        - winpr_strerror
      functionUses:    13
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/thread.c:157,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:157,2'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_strerror
                - WLog_Print_dbg_tag.4039
            - BranchSide:      'winpr/libwinpr/thread/thread.c:157,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/thread/thread.c:158,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:158,2'
              BranchSideFuncs:
                - winpr_strerror
                - WLog_Print_dbg_tag.4039
            - BranchSide:      'winpr/libwinpr/thread/thread.c:158,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/thread/thread.c:161,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:161,6'
              BranchSideFuncs:
                - winpr_strerror
                - WLog_Print_dbg_tag.4039
            - BranchSide:      'winpr/libwinpr/thread/thread.c:163,8'
              BranchSideFuncs:
                - winpr_strerror
                - WLog_Print_dbg_tag.4039
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:157,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/thread.c:158,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/thread.c:164,3'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/thread/thread.c:164,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 216
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - tag
        - log_level
        - line
        - file
        - fkt
      BBCount:         9
      ICount:          67
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintMessageVA
      functionUses:    24
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/wlog.h:206,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/wlog.h:207,30'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessageVA
            - BranchSide:      'winpr/include/winpr/wlog.h:209,26'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessageVA
        - Branch String:   'winpr/include/winpr/wlog.h:209,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/wlog.h:209,7'
              BranchSideFuncs:
                - WLog_PrintMessageVA
            - BranchSide:      'winpr/include/winpr/wlog.h:212,4'
              BranchSideFuncs:
                - WLog_PrintMessageVA
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:207,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:209,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:213,4'
          Dst:             WLog_PrintMessageVA
    - functionName:    mux_condition_bundle_signal
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 237
      functionLinenumberEnd: 249
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - bundle
      BBCount:         18
      ICount:          78
      EdgeCount:       21
      CyclomaticComplexity: 5
      functionsReached:
        - pthread_cond_signal
        - pthread_mutex_checked_unlock
        - pthread_mutex_lock
        - run_cond_fkt_
        - run_mutex_fkt_
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/thread.c:239,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:239,2'
              BranchSideFuncs:
                - run_mutex_fkt_
                - run_cond_fkt_
                - run_mutex_fkt_
            - BranchSide:      'winpr/libwinpr/thread/thread.c:239,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/thread/thread.c:241,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:242,3'
              BranchSideFuncs:
                - run_cond_fkt_
                - run_mutex_fkt_
            - BranchSide:      'winpr/libwinpr/thread/thread.c:243,2'
              BranchSideFuncs:
                - run_cond_fkt_
                - run_mutex_fkt_
        - Branch String:   'winpr/libwinpr/thread/thread.c:244,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:245,6'
              BranchSideFuncs:
                - run_mutex_fkt_
            - BranchSide:      'winpr/libwinpr/thread/thread.c:246,7'
              BranchSideFuncs:
                - run_mutex_fkt_
        - Branch String:   'winpr/libwinpr/thread/thread.c:246,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:247,6'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/thread/thread.c:248,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:239,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/thread.c:241,7'
          Dst:             run_mutex_fkt_
        - Src:             'winpr/libwinpr/thread/thread.c:241,7'
          Dst:             pthread_mutex_lock
        - Src:             'winpr/libwinpr/thread/thread.c:244,7'
          Dst:             run_cond_fkt_
        - Src:             'winpr/libwinpr/thread/thread.c:244,7'
          Dst:             pthread_cond_signal
        - Src:             'winpr/libwinpr/thread/thread.c:246,7'
          Dst:             run_mutex_fkt_
        - Src:             'winpr/libwinpr/thread/thread.c:246,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: 206
      functionLinenumberEnd: 209
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - mutex
      BBCount:         15
      ICount:          45
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - pthread_mutex_trylock
        - pthread_mutex_unlock
        - winpr_int_assert
      functionUses:    6
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/thread.c:207,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:207,2'
              BranchSideFuncs:
                - pthread_mutex_trylock
                - winpr_int_assert
                - pthread_mutex_unlock
            - BranchSide:      'winpr/libwinpr/thread/thread.c:207,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/thread/thread.c:208,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:208,2'
              BranchSideFuncs:
                - pthread_mutex_unlock
            - BranchSide:      'winpr/libwinpr/thread/thread.c:208,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:207,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/thread.c:208,2'
          Dst:             pthread_mutex_trylock
        - Src:             'winpr/libwinpr/thread/thread.c:208,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/thread.c:209,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: 300
      functionLinenumberEnd: 303
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - thread
      BBCount:         9
      ICount:          32
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - mux_condition_bundle_signal
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/thread.c:301,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:301,2'
              BranchSideFuncs:
                - mux_condition_bundle_signal
            - BranchSide:      'winpr/libwinpr/thread/thread.c:301,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:301,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/thread.c:303,9'
          Dst:             mux_condition_bundle_signal
    - functionName:    signal_and_wait_for_ready
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 478
      functionLinenumberEnd: 507
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - thread
      BBCount:         19
      ICount:          84
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - mux_condition_bundle_lock
        - mux_condition_bundle_unlock
        - mux_condition_bundle_wait
        - signal_thread_ready
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/thread.c:481,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:481,2'
              BranchSideFuncs:
                - mux_condition_bundle_lock
                - signal_thread_ready
                - mux_condition_bundle_unlock
                - mux_condition_bundle_wait
            - BranchSide:      'winpr/libwinpr/thread/thread.c:481,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/thread/thread.c:483,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:484,3'
              BranchSideFuncs:
                - signal_thread_ready
                - mux_condition_bundle_unlock
                - mux_condition_bundle_wait
            - BranchSide:      'winpr/libwinpr/thread/thread.c:486,27'
              BranchSideFuncs:
                - signal_thread_ready
                - mux_condition_bundle_unlock
                - mux_condition_bundle_wait
        - Branch String:   'winpr/libwinpr/thread/thread.c:486,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:487,3'
              BranchSideFuncs:
                - mux_condition_bundle_wait
                - mux_condition_bundle_unlock
            - BranchSide:      'winpr/libwinpr/thread/thread.c:489,34'
              BranchSideFuncs:
                - mux_condition_bundle_wait
                - mux_condition_bundle_unlock
        - Branch String:   'winpr/libwinpr/thread/thread.c:489,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:490,3'
              BranchSideFuncs:
                - mux_condition_bundle_unlock
            - BranchSide:      'winpr/libwinpr/thread/thread.c:500,6'
              BranchSideFuncs:
                - mux_condition_bundle_unlock
        - Branch String:   'winpr/libwinpr/thread/thread.c:503,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:504,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/thread/thread.c:506,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:481,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/thread.c:483,7'
          Dst:             mux_condition_bundle_lock
        - Src:             'winpr/libwinpr/thread/thread.c:486,7'
          Dst:             signal_thread_ready
        - Src:             'winpr/libwinpr/thread/thread.c:489,7'
          Dst:             mux_condition_bundle_wait
        - Src:             'winpr/libwinpr/thread/thread.c:503,7'
          Dst:             mux_condition_bundle_unlock
    - functionName:    mux_condition_bundle_lock
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 252
      functionLinenumberEnd: 254
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - bundle
      BBCount:         9
      ICount:          32
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - pthread_mutex_lock
        - run_mutex_fkt_
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/thread.c:253,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:253,2'
              BranchSideFuncs:
                - run_mutex_fkt_
            - BranchSide:      'winpr/libwinpr/thread/thread.c:253,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:253,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/thread.c:254,9'
          Dst:             run_mutex_fkt_
        - Src:             'winpr/libwinpr/thread/thread.c:254,9'
          Dst:             pthread_mutex_lock
    - functionName:    mux_condition_bundle_wait
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 264
      functionLinenumberEnd: 296
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - bundle
        - name
      BBCount:         35
      ICount:          128
      EdgeCount:       36
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_Print_dbg_tag
        - pthread_cond_wait
        - pthread_mutex_trylock
        - winpr_int_assert
        - winpr_strerror
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/thread.c:267,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:267,2'
              BranchSideFuncs:
                - winpr_int_assert
                - pthread_mutex_trylock
                - winpr_int_assert
                - pthread_cond_wait
                - winpr_strerror
                - WLog_Print_dbg_tag.4039
            - BranchSide:      'winpr/libwinpr/thread/thread.c:267,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/thread/thread.c:268,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:268,2'
              BranchSideFuncs:
                - pthread_mutex_trylock
                - winpr_int_assert
                - pthread_cond_wait
                - winpr_strerror
                - WLog_Print_dbg_tag.4039
            - BranchSide:      'winpr/libwinpr/thread/thread.c:268,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/thread/thread.c:269,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:269,2'
              BranchSideFuncs:
                - pthread_cond_wait
                - winpr_strerror
                - WLog_Print_dbg_tag.4039
            - BranchSide:      'winpr/libwinpr/thread/thread.c:269,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/thread/thread.c:271,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:273,30'
              BranchSideFuncs:
                - pthread_cond_wait
                - winpr_strerror
                - WLog_Print_dbg_tag.4039
            - BranchSide:      'winpr/libwinpr/thread/thread.c:293,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/thread/thread.c:274,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:271,2'
              BranchSideFuncs:
                - winpr_strerror
                - WLog_Print_dbg_tag.4039
                - pthread_cond_wait
            - BranchSide:      'winpr/libwinpr/thread/thread.c:276,9'
              BranchSideFuncs:
                - winpr_strerror
                - WLog_Print_dbg_tag.4039
                - pthread_cond_wait
        - Branch String:   'winpr/libwinpr/thread/thread.c:279,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:285,6'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/thread/thread.c:285,6'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/thread/thread.c:285,6'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/thread/thread.c:285,6'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/thread/thread.c:288,6'
              BranchSideFuncs:
                - pthread_cond_wait
                - winpr_strerror
                - WLog_Print_dbg_tag.4039
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:267,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/thread.c:268,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/thread.c:269,2'
          Dst:             pthread_mutex_trylock
        - Src:             'winpr/libwinpr/thread/thread.c:269,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/thread.c:273,11'
          Dst:             pthread_cond_wait
        - Src:             'winpr/libwinpr/thread/thread.c:277,4'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/thread/thread.c:277,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    mux_condition_bundle_unlock
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 258
      functionLinenumberEnd: 260
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - bundle
      BBCount:         9
      ICount:          32
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - pthread_mutex_checked_unlock
        - run_mutex_fkt_
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/thread.c:259,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:259,2'
              BranchSideFuncs:
                - run_mutex_fkt_
            - BranchSide:      'winpr/libwinpr/thread/thread.c:259,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:259,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/thread.c:260,9'
          Dst:             run_mutex_fkt_
        - Src:             'winpr/libwinpr/thread/thread.c:260,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: 307
      functionLinenumberEnd: 310
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - thread
      BBCount:         9
      ICount:          32
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - mux_condition_bundle_signal
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/thread.c:308,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:308,2'
              BranchSideFuncs:
                - mux_condition_bundle_signal
            - BranchSide:      'winpr/libwinpr/thread/thread.c:308,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:308,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/thread.c:310,9'
          Dst:             mux_condition_bundle_signal
    - functionName:    thread_launcher
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 513
      functionLinenumberEnd: 563
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - arg
      BBCount:         24
      ICount:          142
      EdgeCount:       32
      CyclomaticComplexity: 10
      functionsReached:
        - TlsSetValue
        - WLog_Print_dbg_tag
        - 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:518,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:520,3'
              BranchSideFuncs:
                - TlsSetValue
                - pthread_self
                - WLog_Print_dbg_tag.4039
                - apc_cleanupThread
                - set_event
                - signal_thread_ready
                - cleanup_handle
                - WLog_Print_dbg_tag.4039
                - signal_and_wait_for_ready
            - BranchSide:      'winpr/libwinpr/thread/thread.c:524,19'
              BranchSideFuncs:
                - TlsSetValue
                - pthread_self
                - WLog_Print_dbg_tag.4039
                - apc_cleanupThread
                - set_event
                - signal_thread_ready
                - cleanup_handle
                - WLog_Print_dbg_tag.4039
                - signal_and_wait_for_ready
        - Branch String:   'winpr/libwinpr/thread/thread.c:524,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:526,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.4039
                - apc_cleanupThread
                - set_event
                - signal_thread_ready
                - cleanup_handle
                - signal_and_wait_for_ready
            - BranchSide:      'winpr/libwinpr/thread/thread.c:530,14'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.4039
                - apc_cleanupThread
                - set_event
                - signal_thread_ready
                - cleanup_handle
                - signal_and_wait_for_ready
        - Branch String:   'winpr/libwinpr/thread/thread.c:530,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:537,13'
              BranchSideFuncs:
                - signal_and_wait_for_ready
                - apc_cleanupThread
                - set_event
                - signal_thread_ready
                - cleanup_handle
            - BranchSide:      'winpr/libwinpr/thread/thread.c:542,33'
              BranchSideFuncs:
                - signal_and_wait_for_ready
                - apc_cleanupThread
                - set_event
                - signal_thread_ready
                - cleanup_handle
        - Branch String:   'winpr/libwinpr/thread/thread.c:542,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:543,3'
              BranchSideFuncs:
                - apc_cleanupThread
                - set_event
                - signal_thread_ready
                - cleanup_handle
            - BranchSide:      'winpr/libwinpr/thread/thread.c:545,7'
              BranchSideFuncs:
                - apc_cleanupThread
                - set_event
                - signal_thread_ready
                - cleanup_handle
        - Branch String:   'winpr/libwinpr/thread/thread.c:548,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:548,6'
              BranchSideFuncs:
                - apc_cleanupThread
                - set_event
                - signal_thread_ready
                - cleanup_handle
            - BranchSide:      'winpr/libwinpr/thread/thread.c:550,21'
              BranchSideFuncs:
                - apc_cleanupThread
                - set_event
                - signal_thread_ready
                - cleanup_handle
        - Branch String:   'winpr/libwinpr/thread/thread.c:552,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:553,25'
              BranchSideFuncs:
                - set_event
                - signal_thread_ready
                - cleanup_handle
            - BranchSide:      'winpr/libwinpr/thread/thread.c:555,13'
              BranchSideFuncs:
                - set_event
                - signal_thread_ready
                - cleanup_handle
        - Branch String:   'winpr/libwinpr/thread/thread.c:559,24'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:559,28'
              BranchSideFuncs:
                - cleanup_handle
            - BranchSide:      'winpr/libwinpr/thread/thread.c:560,19'
              BranchSideFuncs:
                - cleanup_handle
        - Branch String:   'winpr/libwinpr/thread/thread.c:559,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:560,19'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/thread/thread.c:561,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:520,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/thread/thread.c:524,7'
          Dst:             TlsSetValue
        - Src:             'winpr/libwinpr/thread/thread.c:526,3'
          Dst:             pthread_self
        - Src:             'winpr/libwinpr/thread/thread.c:526,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/thread/thread.c:538,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/thread/thread.c:542,7'
          Dst:             signal_and_wait_for_ready
        - Src:             'winpr/libwinpr/thread/thread.c:550,3'
          Dst:             apc_cleanupThread
        - Src:             'winpr/libwinpr/thread/thread.c:555,3'
          Dst:             set_event
        - Src:             'winpr/libwinpr/thread/thread.c:557,9'
          Dst:             signal_thread_ready
        - Src:             'winpr/libwinpr/thread/thread.c:560,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: 420
      functionLinenumberEnd: 421
      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:421,9'
          Dst:             winpr_event_set
    - functionName:    cleanup_handle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 748
      functionLinenumberEnd: 775
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - obj
      BBCount:         9
      ICount:          55
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
        - 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:750,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:751,3'
              BranchSideFuncs:
                - apc_uninit
                - WLog_Print_dbg_tag.4039
                - mux_condition_bundle_uninit
                - mux_condition_bundle_uninit
                - run_mutex_fkt_
                - winpr_event_uninit
                - free
            - BranchSide:      'winpr/libwinpr/thread/thread.c:753,19'
              BranchSideFuncs:
                - apc_uninit
                - WLog_Print_dbg_tag.4039
                - mux_condition_bundle_uninit
                - mux_condition_bundle_uninit
                - run_mutex_fkt_
                - winpr_event_uninit
                - free
        - Branch String:   'winpr/libwinpr/thread/thread.c:753,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:754,3'
              BranchSideFuncs:
                - mux_condition_bundle_uninit
                - mux_condition_bundle_uninit
                - run_mutex_fkt_
                - winpr_event_uninit
                - free
            - BranchSide:      'winpr/libwinpr/thread/thread.c:756,31'
              BranchSideFuncs:
                - mux_condition_bundle_uninit
                - mux_condition_bundle_uninit
                - run_mutex_fkt_
                - winpr_event_uninit
                - free
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:753,7'
          Dst:             apc_uninit
        - Src:             'winpr/libwinpr/thread/thread.c:754,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/thread/thread.c:756,2'
          Dst:             mux_condition_bundle_uninit
        - Src:             'winpr/libwinpr/thread/thread.c:757,2'
          Dst:             mux_condition_bundle_uninit
        - Src:             'winpr/libwinpr/thread/thread.c:758,2'
          Dst:             run_mutex_fkt_
        - Src:             'winpr/libwinpr/thread/thread.c:758,2'
          Dst:             pthread_mutex_destroy
        - Src:             'winpr/libwinpr/thread/thread.c:760,2'
          Dst:             winpr_event_uninit
    - functionName:    reset_event
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 425
      functionLinenumberEnd: 426
      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:426,9'
          Dst:             winpr_event_reset
    - functionName:    run_cond_init_
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 172
      functionLinenumberEnd: 184
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - fkt
        - name
        - condition
        - conditionattr
      BBCount:         18
      ICount:          81
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_int_assert
        - winpr_strerror
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/thread.c:175,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:175,2'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_strerror
                - WLog_Print_dbg_tag.4039
            - BranchSide:      'winpr/libwinpr/thread/thread.c:175,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/thread/thread.c:176,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:176,2'
              BranchSideFuncs:
                - winpr_strerror
                - WLog_Print_dbg_tag.4039
            - BranchSide:      'winpr/libwinpr/thread/thread.c:176,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/thread/thread.c:179,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:179,6'
              BranchSideFuncs:
                - winpr_strerror
                - WLog_Print_dbg_tag.4039
            - BranchSide:      'winpr/libwinpr/thread/thread.c:181,8'
              BranchSideFuncs:
                - winpr_strerror
                - WLog_Print_dbg_tag.4039
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:175,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/thread.c:176,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/thread.c:182,3'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/thread/thread.c:182,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    dump_thread
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 371
      functionLinenumberEnd: 413
      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: 314
      functionLinenumberEnd: 346
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - handle
      BBCount:         17
      ICount:          105
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - ThreadIsHandled
        - WLog_Print_dbg_tag
        - pthread_join
        - pthread_mutex_checked_unlock
        - pthread_mutex_lock
        - run_mutex_fkt_
        - winpr_strerror
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/thread.c:318,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:319,3'
              BranchSideFuncs:
                - run_mutex_fkt_
                - pthread_join
                - run_mutex_fkt_
                - winpr_strerror
                - WLog_Print_dbg_tag.4039
            - BranchSide:      'winpr/libwinpr/thread/thread.c:321,7'
              BranchSideFuncs:
                - run_mutex_fkt_
                - pthread_join
                - run_mutex_fkt_
                - winpr_strerror
                - WLog_Print_dbg_tag.4039
        - Branch String:   'winpr/libwinpr/thread/thread.c:321,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:322,3'
              BranchSideFuncs:
                - pthread_join
                - run_mutex_fkt_
                - winpr_strerror
                - WLog_Print_dbg_tag.4039
            - BranchSide:      'winpr/libwinpr/thread/thread.c:324,7'
              BranchSideFuncs:
                - pthread_join
                - run_mutex_fkt_
                - winpr_strerror
                - WLog_Print_dbg_tag.4039
        - Branch String:   'winpr/libwinpr/thread/thread.c:324,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:326,25'
              BranchSideFuncs:
                - run_mutex_fkt_
            - BranchSide:      'winpr/libwinpr/thread/thread.c:339,9'
              BranchSideFuncs:
                - run_mutex_fkt_
        - Branch String:   'winpr/libwinpr/thread/thread.c:328,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:330,9'
              BranchSideFuncs:
                - winpr_strerror
                - WLog_Print_dbg_tag.4039
                - run_mutex_fkt_
            - BranchSide:      'winpr/libwinpr/thread/thread.c:336,4'
              BranchSideFuncs:
                - run_mutex_fkt_
        - Branch String:   'winpr/libwinpr/thread/thread.c:342,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:343,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/thread/thread.c:345,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:318,7'
          Dst:             ThreadIsHandled
        - Src:             'winpr/libwinpr/thread/thread.c:321,7'
          Dst:             run_mutex_fkt_
        - Src:             'winpr/libwinpr/thread/thread.c:321,7'
          Dst:             pthread_mutex_lock
        - Src:             'winpr/libwinpr/thread/thread.c:326,12'
          Dst:             pthread_join
        - Src:             'winpr/libwinpr/thread/thread.c:331,4'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/thread/thread.c:331,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/thread/thread.c:342,7'
          Dst:             run_mutex_fkt_
        - Src:             'winpr/libwinpr/thread/thread.c:342,7'
          Dst:             pthread_mutex_checked_unlock
    - functionName:    ThreadIsHandled
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 118
      functionLinenumberEnd: 119
      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:119,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: 123
      functionLinenumberEnd: 130
      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:126,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:127,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/thread/thread.c:129,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:126,7'
          Dst:             ThreadIsHandled
    - functionName:    ThreadCloseHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 778
      functionLinenumberEnd: 814
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - handle
      BBCount:         9
      ICount:          55
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
        - WaitForSingleObject
        - cleanup_handle
        - dump_thread
        - pthread_detach
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/thread.c:798,25'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:798,49'
              BranchSideFuncs:
                - WaitForSingleObject
                - cleanup_handle
                - WLog_Print_dbg_tag.4039
                - pthread_detach
            - BranchSide:      'winpr/libwinpr/thread/thread.c:806,19'
              BranchSideFuncs:
                - cleanup_handle
        - Branch String:   'winpr/libwinpr/thread/thread.c:798,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:800,4'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.4039
                - pthread_detach
            - BranchSide:      'winpr/libwinpr/thread/thread.c:806,19'
              BranchSideFuncs:
                - cleanup_handle
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:796,3'
          Dst:             dump_thread
        - Src:             'winpr/libwinpr/thread/thread.c:798,29'
          Dst:             WaitForSingleObject
        - Src:             'winpr/libwinpr/thread/thread.c:800,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/thread/thread.c:802,4'
          Dst:             pthread_detach
        - Src:             'winpr/libwinpr/thread/thread.c:806,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: 1057
      functionLinenumberEnd: 1122
      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: 1028
      functionLinenumberEnd: 1054
      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_checked_unlock
        - pthread_mutex_lock
        - run_mutex_fkt_
        - set_event
        - winpr_Handle_GetInfo
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/thread.c:1033,53'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:1033,56'
              BranchSideFuncs:
                - run_mutex_fkt_
                - pthread_cancel
                - run_mutex_fkt_
                - set_event
            - BranchSide:      'winpr/libwinpr/thread/thread.c:1034,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/thread/thread.c:1033,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:1034,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/thread/thread.c:1036,26'
              BranchSideFuncs:
                - run_mutex_fkt_
                - 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:
                - pthread_cancel
                - run_mutex_fkt_
                - set_event
            - BranchSide:      'winpr/libwinpr/thread/thread.c:1044,17'
              BranchSideFuncs:
                - pthread_cancel
                - run_mutex_fkt_
                - set_event
        - Branch String:   'winpr/libwinpr/thread/thread.c:1049,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:1050,3'
              BranchSideFuncs:
                - set_event
            - BranchSide:      'winpr/libwinpr/thread/thread.c:1052,12'
              BranchSideFuncs:
                - set_event
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:1033,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/thread/thread.c:1040,7'
          Dst:             run_mutex_fkt_
        - Src:             'winpr/libwinpr/thread/thread.c:1040,7'
          Dst:             pthread_mutex_lock
        - Src:             'winpr/libwinpr/thread/thread.c:1044,2'
          Dst:             pthread_cancel
        - Src:             'winpr/libwinpr/thread/thread.c:1049,7'
          Dst:             run_mutex_fkt_
        - Src:             'winpr/libwinpr/thread/thread.c:1049,7'
          Dst:             pthread_mutex_checked_unlock
        - Src:             'winpr/libwinpr/thread/thread.c:1052,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: 1016
      functionLinenumberEnd: 1024
      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:1021,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:1021,6'
              BranchSideFuncs:
                - sched_yield
                - usleep
            - BranchSide:      'winpr/libwinpr/thread/thread.c:1021,6'
              BranchSideFuncs:
                - sched_yield
                - usleep
        - Branch String:   'winpr/libwinpr/thread/thread.c:1021,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:1021,6'
              BranchSideFuncs:
                - usleep
            - BranchSide:      'winpr/libwinpr/thread/thread.c:1022,3'
              BranchSideFuncs:
                - usleep
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:1021,6'
          Dst:             sched_yield
        - Src:             'winpr/libwinpr/thread/thread.c:1022,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: 1009
      functionLinenumberEnd: 1012
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - hThread
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - SetLastError
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:1010,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/thread/thread.c:1011,2'
          Dst:             SetLastError
    - functionName:    ResumeThread
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 974
      functionLinenumberEnd: 1006
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - hThread
      BBCount:         18
      ICount:          105
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - SetLastError
        - WLog_Print_dbg_tag
        - pthread_mutex_checked_unlock
        - pthread_mutex_lock
        - run_mutex_fkt_
        - winpr_Handle_GetInfo
        - winpr_StartThread
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/thread.c:979,53'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:979,56'
              BranchSideFuncs:
                - run_mutex_fkt_
                - winpr_StartThread
                - run_mutex_fkt_
                - run_mutex_fkt_
                - WLog_Print_dbg_tag.4039
                - WLog_Print_dbg_tag.4039
                - SetLastError
            - BranchSide:      'winpr/libwinpr/thread/thread.c:981,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.4039
                - SetLastError
        - Branch String:   'winpr/libwinpr/thread/thread.c:979,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:981,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.4039
                - SetLastError
            - BranchSide:      'winpr/libwinpr/thread/thread.c:986,26'
              BranchSideFuncs:
                - run_mutex_fkt_
                - winpr_StartThread
                - run_mutex_fkt_
                - run_mutex_fkt_
                - WLog_Print_dbg_tag.4039
        - Branch String:   'winpr/libwinpr/thread/thread.c:988,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:989,3'
              BranchSideFuncs:
                - winpr_StartThread
                - run_mutex_fkt_
                - run_mutex_fkt_
                - WLog_Print_dbg_tag.4039
            - BranchSide:      'winpr/libwinpr/thread/thread.c:991,7'
              BranchSideFuncs:
                - winpr_StartThread
                - run_mutex_fkt_
                - run_mutex_fkt_
                - WLog_Print_dbg_tag.4039
        - Branch String:   'winpr/libwinpr/thread/thread.c:991,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:993,26'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.4039
                - run_mutex_fkt_
            - BranchSide:      'winpr/libwinpr/thread/thread.c:1000,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.4039
                - run_mutex_fkt_
        - Branch String:   'winpr/libwinpr/thread/thread.c:993,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:995,4'
              BranchSideFuncs:
                - run_mutex_fkt_
            - BranchSide:      'winpr/libwinpr/thread/thread.c:998,2'
              BranchSideFuncs:
                - run_mutex_fkt_
        - Branch String:   'winpr/libwinpr/thread/thread.c:1002,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:1003,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/thread/thread.c:1005,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:979,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/thread/thread.c:981,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/thread/thread.c:982,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/thread/thread.c:988,7'
          Dst:             run_mutex_fkt_
        - Src:             'winpr/libwinpr/thread/thread.c:988,7'
          Dst:             pthread_mutex_lock
        - Src:             'winpr/libwinpr/thread/thread.c:993,8'
          Dst:             winpr_StartThread
        - Src:             'winpr/libwinpr/thread/thread.c:995,4'
          Dst:             run_mutex_fkt_
        - Src:             'winpr/libwinpr/thread/thread.c:995,4'
          Dst:             pthread_mutex_checked_unlock
        - Src:             'winpr/libwinpr/thread/thread.c:1000,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/thread/thread.c:1002,7'
          Dst:             run_mutex_fkt_
        - Src:             'winpr/libwinpr/thread/thread.c:1002,7'
          Dst:             pthread_mutex_checked_unlock
    - functionName:    winpr_StartThread
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 567
      functionLinenumberEnd: 623
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - thread
      BBCount:         27
      ICount:          152
      EdgeCount:       36
      CyclomaticComplexity: 11
      functionsReached:
        - WLog_Print_dbg_tag
        - 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:572,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:573,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_Print_dbg_tag.4039
                - pthread_attr_setstacksize
            - BranchSide:      'winpr/libwinpr/thread/thread.c:574,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_Print_dbg_tag.4039
                - pthread_attr_setstacksize
        - Branch String:   'winpr/libwinpr/thread/thread.c:579,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:580,36'
              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_Print_dbg_tag.4039
            - BranchSide:      'winpr/libwinpr/thread/thread.c:582,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_Print_dbg_tag.4039
        - Branch String:   'winpr/libwinpr/thread/thread.c:593,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:594,3'
              BranchSideFuncs:
                - pthread_attr_destroy
                - dump_thread
                - mux_condition_bundle_unlock
            - BranchSide:      'winpr/libwinpr/thread/thread.c:596,34'
              BranchSideFuncs:
                - mux_condition_bundle_wait
                - pthread_attr_destroy
                - dump_thread
                - mux_condition_bundle_unlock
                - mux_condition_bundle_unlock
                - signal_thread_is_running
                - WLog_Print_dbg_tag.4039
        - Branch String:   'winpr/libwinpr/thread/thread.c:596,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:597,3'
              BranchSideFuncs:
                - mux_condition_bundle_unlock
                - pthread_attr_destroy
                - dump_thread
                - mux_condition_bundle_unlock
                - signal_thread_is_running
                - WLog_Print_dbg_tag.4039
            - BranchSide:      'winpr/libwinpr/thread/thread.c:599,9'
              BranchSideFuncs:
                - mux_condition_bundle_unlock
                - pthread_attr_destroy
                - dump_thread
                - mux_condition_bundle_unlock
                - signal_thread_is_running
                - WLog_Print_dbg_tag.4039
        - Branch String:   'winpr/libwinpr/thread/thread.c:600,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:601,3'
              BranchSideFuncs:
                - signal_thread_is_running
                - WLog_Print_dbg_tag.4039
                - pthread_attr_destroy
                - dump_thread
                - mux_condition_bundle_unlock
            - BranchSide:      'winpr/libwinpr/thread/thread.c:603,32'
              BranchSideFuncs:
                - signal_thread_is_running
                - WLog_Print_dbg_tag.4039
                - pthread_attr_destroy
                - dump_thread
                - mux_condition_bundle_unlock
        - Branch String:   'winpr/libwinpr/thread/thread.c:603,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:605,3'
              BranchSideFuncs:
                - pthread_attr_destroy
                - dump_thread
                - mux_condition_bundle_unlock
            - BranchSide:      'winpr/libwinpr/thread/thread.c:609,5'
              BranchSideFuncs:
                - pthread_attr_destroy
                - dump_thread
                - mux_condition_bundle_unlock
        - Branch String:   'winpr/libwinpr/thread/thread.c:611,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:613,37'
              BranchSideFuncs:
                - mux_condition_bundle_unlock
                - pthread_attr_destroy
                - dump_thread
            - BranchSide:      'winpr/libwinpr/thread/thread.c:617,2'
              BranchSideFuncs:
                - pthread_attr_destroy
                - dump_thread
        - Branch String:   'winpr/libwinpr/thread/thread.c:613,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:614,7'
              BranchSideFuncs:
                - 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:619,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:620,15'
              BranchSideFuncs:
                - dump_thread
            - BranchSide:      'winpr/libwinpr/thread/thread.c:622,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:572,7'
          Dst:             mux_condition_bundle_lock
        - Src:             'winpr/libwinpr/thread/thread.c:576,2'
          Dst:             pthread_attr_init
        - Src:             'winpr/libwinpr/thread/thread.c:577,2'
          Dst:             pthread_attr_setdetachstate
        - Src:             'winpr/libwinpr/thread/thread.c:580,3'
          Dst:             pthread_attr_setstacksize
        - Src:             'winpr/libwinpr/thread/thread.c:583,2'
          Dst:             reset_event
        - Src:             'winpr/libwinpr/thread/thread.c:593,6'
          Dst:             pthread_create
        - Src:             'winpr/libwinpr/thread/thread.c:593,6'
          Dst:             thread_launcher
        - Src:             'winpr/libwinpr/thread/thread.c:596,7'
          Dst:             mux_condition_bundle_wait
        - Src:             'winpr/libwinpr/thread/thread.c:600,7'
          Dst:             mux_condition_bundle_unlock
        - Src:             'winpr/libwinpr/thread/thread.c:603,7'
          Dst:             signal_thread_is_running
        - Src:             'winpr/libwinpr/thread/thread.c:605,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/thread/thread.c:613,8'
          Dst:             mux_condition_bundle_unlock
        - Src:             'winpr/libwinpr/thread/thread.c:617,2'
          Dst:             pthread_attr_destroy
        - Src:             'winpr/libwinpr/thread/thread.c:620,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: 929
      functionLinenumberEnd: 935
      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: 938
      functionLinenumberEnd: 971
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - pfnAPC
        - hThread
        - dwData
      BBCount:         13
      ICount:          111
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - SetLastError
        - WLog_Print_dbg_tag
        - apc_register
        - calloc
        - winpr_Handle_GetInfo
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/thread.c:944,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:945,3'
              BranchSideFuncs:
                - winpr_Handle_GetInfo.4058
                - WLog_Print_dbg_tag.4039
                - SetLastError
                - calloc
                - SetLastError
                - apc_register
            - BranchSide:      'winpr/libwinpr/thread/thread.c:947,28'
              BranchSideFuncs:
                - winpr_Handle_GetInfo.4058
                - WLog_Print_dbg_tag.4039
                - SetLastError
                - calloc
                - SetLastError
                - apc_register
        - Branch String:   'winpr/libwinpr/thread/thread.c:947,53'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:947,56'
              BranchSideFuncs:
                - calloc
                - SetLastError
                - apc_register
                - WLog_Print_dbg_tag.4039
                - SetLastError
            - BranchSide:      'winpr/libwinpr/thread/thread.c:949,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.4039
                - SetLastError
        - Branch String:   'winpr/libwinpr/thread/thread.c:947,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:949,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.4039
                - SetLastError
            - BranchSide:      'winpr/libwinpr/thread/thread.c:954,12'
              BranchSideFuncs:
                - calloc
                - SetLastError
                - apc_register
        - Branch String:   'winpr/libwinpr/thread/thread.c:955,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:957,3'
              BranchSideFuncs:
                - apc_register
            - BranchSide:      'winpr/libwinpr/thread/thread.c:961,9'
              BranchSideFuncs:
                - apc_register
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:947,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/thread/thread.c:949,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/thread/thread.c:950,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/thread/thread.c:954,12'
          Dst:             calloc
        - Src:             'winpr/libwinpr/thread/thread.c:957,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/thread/thread.c:969,2'
          Dst:             apc_register
    - functionName:    GetCurrentThreadId
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 913
      functionLinenumberEnd: 918
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pthread_self
      functionUses:    5
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/thread.c:914,18'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:914,12'
              BranchSideFuncs:
                - pthread_self
            - BranchSide:      'winpr/libwinpr/thread/thread.c:914,18'
              BranchSideFuncs:
                - pthread_self
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:914,18'
          Dst:             pthread_self
    - functionName:    _GetCurrentThread
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 908
      functionLinenumberEnd: 909
      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:909,17'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:909,17'
              BranchSideFuncs:
                - winpr_GetCurrentThread
            - BranchSide:      'winpr/libwinpr/thread/thread.c:909,17'
              BranchSideFuncs:
                - winpr_GetCurrentThread
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:909,17'
          Dst:             winpr_GetCurrentThread
    - functionName:    winpr_GetCurrentThread
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 896
      functionLinenumberEnd: 905
      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:897,16'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:897,16'
              BranchSideFuncs:
                - winpr_InitOnceExecuteOnce
                - pthread_self
                - TlsGetValue
            - BranchSide:      'winpr/libwinpr/thread/thread.c:897,16'
              BranchSideFuncs:
                - winpr_InitOnceExecuteOnce
                - pthread_self
                - TlsGetValue
        - Branch String:   'winpr/libwinpr/thread/thread.c:900,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:901,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/thread/thread.c:903,20'
              BranchSideFuncs:
                - TlsGetValue
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:899,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/thread/thread.c:899,2'
          Dst:             initializeThreads
        - Src:             'winpr/libwinpr/thread/thread.c:900,22'
          Dst:             pthread_self
        - Src:             'winpr/libwinpr/thread/thread.c:903,8'
          Dst:             TlsGetValue
    - functionName:    initializeThreads
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 445
      functionLinenumberEnd: 474
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - InitOnce
        - Parameter
        - Context
      BBCount:         9
      ICount:          49
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - TlsAlloc
        - WLog_Print_dbg_tag
        - apc_init
        - pthread_self
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/thread.c:446,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:448,3'
              BranchSideFuncs:
                - pthread_self
                - TlsAlloc
                - WLog_Print_dbg_tag.4039
            - BranchSide:      'winpr/libwinpr/thread/thread.c:452,25'
              BranchSideFuncs:
                - pthread_self
                - TlsAlloc
                - WLog_Print_dbg_tag.4039
        - Branch String:   'winpr/libwinpr/thread/thread.c:456,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:456,31'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.4039
            - BranchSide:      'winpr/libwinpr/thread/thread.c:458,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.4039
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:446,7'
          Dst:             apc_init
        - Src:             'winpr/libwinpr/thread/thread.c:448,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/thread/thread.c:453,17'
          Dst:             pthread_self
        - Src:             'winpr/libwinpr/thread/thread.c:455,26'
          Dst:             TlsAlloc
        - Src:             'winpr/libwinpr/thread/thread.c:458,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    GetExitCodeThread
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 878
      functionLinenumberEnd: 893
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - hThread
        - lpExitCode
      BBCount:         9
      ICount:          63
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - SetLastError
        - WLog_Print_dbg_tag
        - winpr_Handle_GetInfo
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/thread.c:883,53'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:883,56'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.4039
                - SetLastError
            - BranchSide:      'winpr/libwinpr/thread/thread.c:885,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.4039
                - SetLastError
        - Branch String:   'winpr/libwinpr/thread/thread.c:883,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:885,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.4039
                - SetLastError
            - BranchSide:      'winpr/libwinpr/thread/thread.c:890,26'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:883,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/thread/thread.c:885,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/thread/thread.c:886,3'
          Dst:             SetLastError
    - functionName:    ExitThread
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 831
      functionLinenumberEnd: 875
      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: 824
      functionLinenumberEnd: 827
      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:         3
      ICount:          34
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - SetLastError
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:825,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/thread/thread.c:826,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: 213
      functionLinenumberEnd: 223
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - bundle
      BBCount:         14
      ICount:          58
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - pthread_cond_init
        - pthread_mutex_init
        - run_cond_init_
        - run_mutex_init_
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/thread.c:214,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:214,2'
              BranchSideFuncs:
                - run_mutex_init_
                - run_cond_init_
            - BranchSide:      'winpr/libwinpr/thread/thread.c:214,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/thread/thread.c:217,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:218,3'
              BranchSideFuncs:
                - run_cond_init_
            - BranchSide:      'winpr/libwinpr/thread/thread.c:220,7'
              BranchSideFuncs:
                - run_cond_init_
        - Branch String:   'winpr/libwinpr/thread/thread.c:220,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:221,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/thread/thread.c:222,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:214,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/thread.c:217,7'
          Dst:             run_mutex_init_
        - Src:             'winpr/libwinpr/thread/thread.c:217,7'
          Dst:             pthread_mutex_init
        - Src:             'winpr/libwinpr/thread/thread.c:220,7'
          Dst:             run_cond_init_
        - Src:             'winpr/libwinpr/thread/thread.c:220,7'
          Dst:             pthread_cond_init
    - functionName:    run_mutex_init_
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 136
      functionLinenumberEnd: 148
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - fkt
        - name
        - mutex
        - mutexattr
      BBCount:         18
      ICount:          81
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_int_assert
        - winpr_strerror
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/thread.c:139,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:139,2'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_strerror
                - WLog_Print_dbg_tag.4039
            - BranchSide:      'winpr/libwinpr/thread/thread.c:139,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/thread/thread.c:140,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:140,2'
              BranchSideFuncs:
                - winpr_strerror
                - WLog_Print_dbg_tag.4039
            - BranchSide:      'winpr/libwinpr/thread/thread.c:140,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/thread/thread.c:143,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:143,6'
              BranchSideFuncs:
                - winpr_strerror
                - WLog_Print_dbg_tag.4039
            - BranchSide:      'winpr/libwinpr/thread/thread.c:145,8'
              BranchSideFuncs:
                - winpr_strerror
                - WLog_Print_dbg_tag.4039
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:139,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/thread.c:140,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/thread.c:146,3'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/thread/thread.c:146,3'
          Dst:             WLog_Print_dbg_tag
    - 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: 685
      functionLinenumberEnd: 745
      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:         24
      ICount:          163
      EdgeCount:       33
      CyclomaticComplexity: 11
      functionsReached:
        - WINPR_HANDLE_SET_TYPE_AND_MODE
        - WLog_Print_dbg_tag
        - 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:689,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:690,3'
              BranchSideFuncs:
                - winpr_event_init
                - WLog_Print_dbg_tag.4039
                - cleanup_handle
                - run_mutex_init_
                - WLog_Print_dbg_tag.4039
                - apc_init
                - WLog_Print_dbg_tag.4039
                - mux_condition_bundle_init
                - mux_condition_bundle_init
                - WINPR_HANDLE_SET_TYPE_AND_MODE.4072
                - winpr_InitOnceExecuteOnce
                - winpr_StartThread
                - set_event
            - BranchSide:      'winpr/libwinpr/thread/thread.c:692,24'
              BranchSideFuncs:
                - winpr_event_init
                - WLog_Print_dbg_tag.4039
                - cleanup_handle
                - run_mutex_init_
                - WLog_Print_dbg_tag.4039
                - apc_init
                - WLog_Print_dbg_tag.4039
                - mux_condition_bundle_init
                - mux_condition_bundle_init
                - WINPR_HANDLE_SET_TYPE_AND_MODE.4072
                - winpr_InitOnceExecuteOnce
                - winpr_StartThread
                - set_event
        - Branch String:   'winpr/libwinpr/thread/thread.c:702,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:704,3'
              BranchSideFuncs:
                - run_mutex_init_
                - WLog_Print_dbg_tag.4039
                - cleanup_handle
                - apc_init
                - WLog_Print_dbg_tag.4039
                - mux_condition_bundle_init
                - mux_condition_bundle_init
                - WINPR_HANDLE_SET_TYPE_AND_MODE.4072
                - winpr_InitOnceExecuteOnce
                - winpr_StartThread
                - set_event
            - BranchSide:      'winpr/libwinpr/thread/thread.c:708,7'
              BranchSideFuncs:
                - run_mutex_init_
                - WLog_Print_dbg_tag.4039
                - cleanup_handle
                - apc_init
                - WLog_Print_dbg_tag.4039
                - mux_condition_bundle_init
                - mux_condition_bundle_init
                - WINPR_HANDLE_SET_TYPE_AND_MODE.4072
                - winpr_InitOnceExecuteOnce
                - winpr_StartThread
                - set_event
        - Branch String:   'winpr/libwinpr/thread/thread.c:708,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:710,3'
              BranchSideFuncs:
                - apc_init
                - WLog_Print_dbg_tag.4039
                - cleanup_handle
                - mux_condition_bundle_init
                - mux_condition_bundle_init
                - WINPR_HANDLE_SET_TYPE_AND_MODE.4072
                - winpr_InitOnceExecuteOnce
                - winpr_StartThread
                - set_event
            - BranchSide:      'winpr/libwinpr/thread/thread.c:714,17'
              BranchSideFuncs:
                - apc_init
                - WLog_Print_dbg_tag.4039
                - cleanup_handle
                - mux_condition_bundle_init
                - mux_condition_bundle_init
                - WINPR_HANDLE_SET_TYPE_AND_MODE.4072
                - winpr_InitOnceExecuteOnce
                - winpr_StartThread
                - set_event
        - Branch String:   'winpr/libwinpr/thread/thread.c:714,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:716,3'
              BranchSideFuncs:
                - mux_condition_bundle_init
                - cleanup_handle
                - mux_condition_bundle_init
                - WINPR_HANDLE_SET_TYPE_AND_MODE.4072
                - winpr_InitOnceExecuteOnce
                - winpr_StartThread
                - set_event
            - BranchSide:      'winpr/libwinpr/thread/thread.c:720,34'
              BranchSideFuncs:
                - mux_condition_bundle_init
                - cleanup_handle
                - mux_condition_bundle_init
                - WINPR_HANDLE_SET_TYPE_AND_MODE.4072
                - winpr_InitOnceExecuteOnce
                - winpr_StartThread
                - set_event
        - Branch String:   'winpr/libwinpr/thread/thread.c:720,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:721,3'
              BranchSideFuncs:
                - mux_condition_bundle_init
                - cleanup_handle
                - WINPR_HANDLE_SET_TYPE_AND_MODE.4072
                - winpr_InitOnceExecuteOnce
                - winpr_StartThread
                - set_event
            - BranchSide:      'winpr/libwinpr/thread/thread.c:722,34'
              BranchSideFuncs:
                - mux_condition_bundle_init
                - cleanup_handle
                - WINPR_HANDLE_SET_TYPE_AND_MODE.4072
                - winpr_InitOnceExecuteOnce
                - winpr_StartThread
                - set_event
        - Branch String:   'winpr/libwinpr/thread/thread.c:722,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:723,3'
              BranchSideFuncs:
                - WINPR_HANDLE_SET_TYPE_AND_MODE.4072
                - winpr_InitOnceExecuteOnce
                - winpr_StartThread
                - cleanup_handle
                - set_event
            - BranchSide:      'winpr/libwinpr/thread/thread.c:725,33'
              BranchSideFuncs:
                - WINPR_HANDLE_SET_TYPE_AND_MODE.4072
                - winpr_InitOnceExecuteOnce
                - winpr_StartThread
                - cleanup_handle
                - set_event
        - Branch String:   'winpr/libwinpr/thread/thread.c:730,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:732,26'
              BranchSideFuncs:
                - set_event
                - cleanup_handle
            - BranchSide:      'winpr/libwinpr/thread/thread.c:737,18'
              BranchSideFuncs:
                - set_event
                - cleanup_handle
        - Branch String:   'winpr/libwinpr/thread/thread.c:732,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:733,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/thread/thread.c:734,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/thread/thread.c:737,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:0,0'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/thread/thread.c:738,4'
              BranchSideFuncs:
                - cleanup_handle
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:687,40'
          Dst:             calloc
        - Src:             'winpr/libwinpr/thread/thread.c:702,7'
          Dst:             winpr_event_init
        - Src:             'winpr/libwinpr/thread/thread.c:704,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/thread/thread.c:708,7'
          Dst:             run_mutex_init_
        - Src:             'winpr/libwinpr/thread/thread.c:708,7'
          Dst:             pthread_mutex_init
        - Src:             'winpr/libwinpr/thread/thread.c:710,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/thread/thread.c:714,7'
          Dst:             apc_init
        - Src:             'winpr/libwinpr/thread/thread.c:716,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/thread/thread.c:720,7'
          Dst:             mux_condition_bundle_init
        - Src:             'winpr/libwinpr/thread/thread.c:722,7'
          Dst:             mux_condition_bundle_init
        - Src:             'winpr/libwinpr/thread/thread.c:725,2'
          Dst:             WINPR_HANDLE_SET_TYPE_AND_MODE
        - Src:             'winpr/libwinpr/thread/thread.c:728,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/thread/thread.c:728,2'
          Dst:             initializeThreads
        - Src:             'winpr/libwinpr/thread/thread.c:732,8'
          Dst:             winpr_StartThread
        - Src:             'winpr/libwinpr/thread/thread.c:737,8'
          Dst:             set_event
        - Src:             'winpr/libwinpr/thread/thread.c:743,2'
          Dst:             cleanup_handle
    - functionName:    SetThreadPriority
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 626
      functionLinenumberEnd: 680
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - hThread
        - nPriority
      BBCount:         22
      ICount:          148
      EdgeCount:       24
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
        - pthread_setschedprio
        - winpr_Handle_GetInfo
        - winpr_strerror
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/thread.c:630,53'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:630,56'
              BranchSideFuncs:
                - pthread_setschedprio
                - winpr_strerror
                - WLog_Print_dbg_tag.4039
            - BranchSide:      'winpr/libwinpr/thread/thread.c:631,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/thread/thread.c:630,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:631,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/thread/thread.c:633,12'
              BranchSideFuncs:
                - pthread_setschedprio
                - winpr_strerror
                - WLog_Print_dbg_tag.4039
        - Branch String:   'winpr/libwinpr/thread/thread.c:640,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:643,19'
              BranchSideFuncs:
                - pthread_setschedprio
                - winpr_strerror
                - WLog_Print_dbg_tag.4039
            - BranchSide:      'winpr/libwinpr/thread/thread.c:646,19'
              BranchSideFuncs:
                - pthread_setschedprio
                - winpr_strerror
                - WLog_Print_dbg_tag.4039
            - BranchSide:      'winpr/libwinpr/thread/thread.c:649,19'
              BranchSideFuncs:
                - pthread_setschedprio
                - winpr_strerror
                - WLog_Print_dbg_tag.4039
            - BranchSide:      'winpr/libwinpr/thread/thread.c:652,19'
              BranchSideFuncs:
                - pthread_setschedprio
                - winpr_strerror
                - WLog_Print_dbg_tag.4039
            - BranchSide:      'winpr/libwinpr/thread/thread.c:655,19'
              BranchSideFuncs:
                - pthread_setschedprio
                - winpr_strerror
                - WLog_Print_dbg_tag.4039
            - BranchSide:      'winpr/libwinpr/thread/thread.c:658,19'
              BranchSideFuncs:
                - pthread_setschedprio
                - winpr_strerror
                - WLog_Print_dbg_tag.4039
            - BranchSide:      'winpr/libwinpr/thread/thread.c:659,4'
              BranchSideFuncs:
                - pthread_setschedprio
                - winpr_strerror
                - WLog_Print_dbg_tag.4039
            - BranchSide:      'winpr/libwinpr/thread/thread.c:662,19'
              BranchSideFuncs:
                - pthread_setschedprio
                - winpr_strerror
                - WLog_Print_dbg_tag.4039
        - Branch String:   'winpr/libwinpr/thread/thread.c:668,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:670,8'
              BranchSideFuncs:
                - winpr_strerror
                - WLog_Print_dbg_tag.4039
            - BranchSide:      'winpr/libwinpr/thread/thread.c:674,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:630,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/thread/thread.c:667,17'
          Dst:             pthread_setschedprio
        - Src:             'winpr/libwinpr/thread/thread.c:671,3'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/thread/thread.c:671,3'
          Dst:             WLog_Print_dbg_tag
    - 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:         12
      ICount:          67
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/synch/pollset.c:255,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/pollset.c:255,2'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.4138
            - BranchSide:      'winpr/libwinpr/synch/pollset.c:255,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/synch/pollset.c:257,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/pollset.c:259,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.4138
            - BranchSide:      'winpr/libwinpr/synch/pollset.c:264,12'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/synch/pollset.c:255,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/synch/pollset.c:259,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 216
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - tag
        - log_level
        - line
        - file
        - fkt
      BBCount:         9
      ICount:          67
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintMessageVA
      functionUses:    3
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/wlog.h:206,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/wlog.h:207,30'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessageVA
            - BranchSide:      'winpr/include/winpr/wlog.h:209,26'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessageVA
        - Branch String:   'winpr/include/winpr/wlog.h:209,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/wlog.h:209,7'
              BranchSideFuncs:
                - WLog_PrintMessageVA
            - BranchSide:      'winpr/include/winpr/wlog.h:212,4'
              BranchSideFuncs:
                - WLog_PrintMessageVA
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:207,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:209,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:213,4'
          Dst:             WLog_PrintMessageVA
    - 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:         12
      ICount:          67
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/synch/pollset.c:234,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/pollset.c:234,2'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.4138
            - BranchSide:      'winpr/libwinpr/synch/pollset.c:234,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/synch/pollset.c:236,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/pollset.c:238,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.4138
            - BranchSide:      'winpr/libwinpr/synch/pollset.c:243,12'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/synch/pollset.c:234,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/synch/pollset.c:238,3'
          Dst:             WLog_Print_dbg_tag
    - 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:         12
      ICount:          75
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/synch/pollset.c:207,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/pollset.c:207,2'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.4138
            - BranchSide:      'winpr/libwinpr/synch/pollset.c:207,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/synch/pollset.c:209,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/pollset.c:211,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.4138
            - BranchSide:      'winpr/libwinpr/synch/pollset.c:216,12'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/synch/pollset.c:207,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/synch/pollset.c:211,3'
          Dst:             WLog_Print_dbg_tag
    - 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:         24
      ICount:          129
      EdgeCount:       29
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - poll
        - winpr_GetTickCount64
        - winpr_int_assert
      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:122,2'
              BranchSideFuncs:
                - winpr_int_assert
        - 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:             winpr_int_assert
        - 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:         12
      ICount:          81
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - handle_mode_to_pollevent
        - winpr_int_assert
      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:86,2'
              BranchSideFuncs:
                - winpr_int_assert
        - 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:             winpr_int_assert
        - 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:         9
      ICount:          32
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      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:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/synch/pollset.c:74,2'
          Dst:             winpr_int_assert
    - 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:         12
      ICount:          44
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_int_assert
      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:63,2'
              BranchSideFuncs:
                - winpr_int_assert
        - 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:             winpr_int_assert
    - 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:         15
      ICount:          79
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - calloc
        - winpr_int_assert
      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:29,2'
              BranchSideFuncs:
                - winpr_int_assert
        - 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:             winpr_int_assert
        - Src:             'winpr/libwinpr/synch/pollset.c:34,18'
          Dst:             calloc
    - functionName:    CommWriteFile
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 373
      functionLinenumberEnd: 562
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - hDevice
        - lpBuffer
        - nNumberOfBytesToWrite
        - lpNumberOfBytesWritten
        - lpOverlapped
      BBCount:         88
      ICount:          549
      EdgeCount:       105
      CyclomaticComplexity: 19
      functionsReached:
        - CommIsHandled
        - CommLog_PrintEx
        - EnterCriticalSection
        - LeaveCriticalSection
        - SetLastError
        - __errno_location
        - eventfd_read
        - select
        - tcdrain
        - winpr_int_assert
        - winpr_strerror
        - write
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:379,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:380,3'
              BranchSideFuncs:
                - eventfd_read
                - tcdrain
                - LeaveCriticalSection
                - winpr_int_assert
                - winpr_int_assert
                - select
                - write
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - SetLastError
                - LeaveCriticalSection
                - eventfd_read
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - winpr_int_assert
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
                - SetLastError
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:382,6'
              BranchSideFuncs:
                - eventfd_read
                - tcdrain
                - LeaveCriticalSection
                - winpr_int_assert
                - winpr_int_assert
                - select
                - write
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - SetLastError
                - LeaveCriticalSection
                - eventfd_read
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - winpr_int_assert
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
                - SetLastError
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:382,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:384,3'
              BranchSideFuncs:
                - SetLastError
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:388,6'
              BranchSideFuncs:
                - eventfd_read
                - tcdrain
                - LeaveCriticalSection
                - winpr_int_assert
                - winpr_int_assert
                - select
                - write
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - SetLastError
                - LeaveCriticalSection
                - eventfd_read
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - winpr_int_assert
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:388,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:390,3'
              BranchSideFuncs:
                - SetLastError
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:394,3'
              BranchSideFuncs:
                - eventfd_read
                - tcdrain
                - LeaveCriticalSection
                - winpr_int_assert
                - winpr_int_assert
                - select
                - write
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - SetLastError
                - LeaveCriticalSection
                - eventfd_read
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - winpr_int_assert
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:396,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:398,3'
              BranchSideFuncs:
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:407,13'
              BranchSideFuncs:
                - eventfd_read
                - tcdrain
                - LeaveCriticalSection
                - winpr_int_assert
                - winpr_int_assert
                - select
                - write
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - SetLastError
                - LeaveCriticalSection
                - eventfd_read
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - winpr_int_assert
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:421,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:423,26'
              BranchSideFuncs:
                - tcdrain
                - LeaveCriticalSection
                - winpr_int_assert
                - winpr_int_assert
                - select
                - write
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - SetLastError
                - LeaveCriticalSection
                - eventfd_read
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - winpr_int_assert
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:426,12'
              BranchSideFuncs:
                - tcdrain
                - LeaveCriticalSection
                - winpr_int_assert
                - winpr_int_assert
                - select
                - write
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - SetLastError
                - LeaveCriticalSection
                - eventfd_read
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - winpr_int_assert
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:434,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:436,7'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - select
                - tcdrain
                - LeaveCriticalSection
                - write
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - SetLastError
                - LeaveCriticalSection
                - eventfd_read
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - winpr_int_assert
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:553,10'
              BranchSideFuncs:
                - tcdrain
                - LeaveCriticalSection
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:442,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:443,16'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - select
                - tcdrain
                - LeaveCriticalSection
                - write
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - SetLastError
                - LeaveCriticalSection
                - eventfd_read
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - winpr_int_assert
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:445,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - select
                - tcdrain
                - LeaveCriticalSection
                - write
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - SetLastError
                - LeaveCriticalSection
                - eventfd_read
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - winpr_int_assert
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:447,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:447,3'
              BranchSideFuncs:
                - winpr_int_assert
                - select
                - tcdrain
                - LeaveCriticalSection
                - winpr_int_assert
                - write
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - SetLastError
                - LeaveCriticalSection
                - eventfd_read
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - winpr_int_assert
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:447,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:448,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:448,3'
              BranchSideFuncs:
                - select
                - tcdrain
                - LeaveCriticalSection
                - winpr_int_assert
                - winpr_int_assert
                - write
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - SetLastError
                - LeaveCriticalSection
                - eventfd_read
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - winpr_int_assert
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:448,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:453,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:455,9'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:462,7'
              BranchSideFuncs:
                - tcdrain
                - LeaveCriticalSection
                - winpr_int_assert
                - winpr_int_assert
                - select
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
                - LeaveCriticalSection
                - write
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - SetLastError
                - eventfd_read
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - winpr_int_assert
                - winpr_int_assert
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:462,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:465,4'
              BranchSideFuncs:
                - SetLastError
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:471,7'
              BranchSideFuncs:
                - tcdrain
                - LeaveCriticalSection
                - winpr_int_assert
                - winpr_int_assert
                - select
                - SetLastError
                - LeaveCriticalSection
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
                - write
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - SetLastError
                - eventfd_read
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - winpr_int_assert
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:471,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:474,14'
              BranchSideFuncs:
                - eventfd_read
                - winpr_int_assert
                - tcdrain
                - LeaveCriticalSection
                - winpr_int_assert
                - winpr_int_assert
                - select
                - SetLastError
                - LeaveCriticalSection
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
                - write
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - SetLastError
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:507,7'
              BranchSideFuncs:
                - tcdrain
                - LeaveCriticalSection
                - winpr_int_assert
                - winpr_int_assert
                - select
                - eventfd_read
                - winpr_int_assert
                - SetLastError
                - LeaveCriticalSection
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - winpr_int_assert
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
                - write
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:476,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:478,9'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - winpr_int_assert
                - winpr_int_assert
                - tcdrain
                - LeaveCriticalSection
                - winpr_int_assert
                - winpr_int_assert
                - select
                - eventfd_read
                - SetLastError
                - LeaveCriticalSection
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
                - write
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - SetLastError
                - SetLastError
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:495,8'
              BranchSideFuncs:
                - winpr_int_assert
                - tcdrain
                - LeaveCriticalSection
                - winpr_int_assert
                - winpr_int_assert
                - select
                - eventfd_read
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - winpr_int_assert
                - winpr_int_assert
                - SetLastError
                - LeaveCriticalSection
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
                - write
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - SetLastError
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:478,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:480,6'
              BranchSideFuncs:
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:485,11'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - winpr_int_assert
                - winpr_int_assert
                - tcdrain
                - LeaveCriticalSection
                - winpr_int_assert
                - winpr_int_assert
                - select
                - eventfd_read
                - __errno_location
                - winpr_int_assert
                - SetLastError
                - LeaveCriticalSection
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
                - write
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - SetLastError
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:492,5'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:492,5'
              BranchSideFuncs:
                - winpr_int_assert
                - tcdrain
                - LeaveCriticalSection
                - winpr_int_assert
                - winpr_int_assert
                - select
                - eventfd_read
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - winpr_int_assert
                - winpr_int_assert
                - SetLastError
                - LeaveCriticalSection
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
                - write
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - SetLastError
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:492,5'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:495,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:497,5'
              BranchSideFuncs:
                - SetLastError
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:501,4'
              BranchSideFuncs:
                - winpr_int_assert
                - tcdrain
                - LeaveCriticalSection
                - winpr_int_assert
                - winpr_int_assert
                - select
                - eventfd_read
                - SetLastError
                - LeaveCriticalSection
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - winpr_int_assert
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
                - write
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:501,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:501,4'
              BranchSideFuncs:
                - tcdrain
                - LeaveCriticalSection
                - winpr_int_assert
                - winpr_int_assert
                - select
                - eventfd_read
                - winpr_int_assert
                - SetLastError
                - LeaveCriticalSection
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - winpr_int_assert
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
                - write
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:501,4'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:507,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:434,2'
              BranchSideFuncs:
                - write
                - tcdrain
                - LeaveCriticalSection
                - winpr_int_assert
                - winpr_int_assert
                - select
                - eventfd_read
                - winpr_int_assert
                - SetLastError
                - LeaveCriticalSection
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - winpr_int_assert
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:509,12'
              BranchSideFuncs:
                - write
                - tcdrain
                - LeaveCriticalSection
                - winpr_int_assert
                - winpr_int_assert
                - select
                - eventfd_read
                - winpr_int_assert
                - SetLastError
                - LeaveCriticalSection
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - winpr_int_assert
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:514,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:516,10'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - SetLastError
                - LeaveCriticalSection
                - tcdrain
                - LeaveCriticalSection
                - winpr_int_assert
                - winpr_int_assert
                - select
                - write
                - eventfd_read
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - winpr_int_assert
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:541,31'
              BranchSideFuncs:
                - tcdrain
                - LeaveCriticalSection
                - winpr_int_assert
                - winpr_int_assert
                - select
                - write
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - SetLastError
                - LeaveCriticalSection
                - eventfd_read
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - winpr_int_assert
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:523,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:526,6'
              BranchSideFuncs:
                - tcdrain
                - LeaveCriticalSection
                - winpr_int_assert
                - winpr_int_assert
                - select
                - write
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - SetLastError
                - LeaveCriticalSection
                - eventfd_read
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - winpr_int_assert
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:528,14'
              BranchSideFuncs:
                - __errno_location
                - winpr_int_assert
                - SetLastError
                - LeaveCriticalSection
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:528,14'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:530,6'
              BranchSideFuncs:
                - SetLastError
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:535,6'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_io.c:377,2'
          Dst:             EnterCriticalSection
        - Src:             'winpr/libwinpr/comm/comm_io.c:379,7'
          Dst:             CommIsHandled
        - Src:             'winpr/libwinpr/comm/comm_io.c:384,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_io.c:390,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_io.c:408,9'
          Dst:             eventfd_read
        - Src:             'winpr/libwinpr/comm/comm_io.c:447,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_io.c:448,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_io.c:451,11'
          Dst:             select
        - Src:             'winpr/libwinpr/comm/comm_io.c:456,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_io.c:456,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_io.c:456,4'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/comm/comm_io.c:456,4'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_io.c:458,4'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_io.c:465,4'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_io.c:476,8'
          Dst:             eventfd_read
        - Src:             'winpr/libwinpr/comm/comm_io.c:478,9'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_io.c:480,6'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_io.c:486,6'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_io.c:486,6'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_io.c:486,6'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/comm/comm_io.c:486,6'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_io.c:492,5'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_io.c:492,5'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_io.c:497,5'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_io.c:501,4'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_io.c:511,16'
          Dst:             write
        - Src:             'winpr/libwinpr/comm/comm_io.c:517,5'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_io.c:517,5'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_io.c:517,5'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/comm/comm_io.c:517,5'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_io.c:523,9'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_io.c:528,14'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_io.c:530,6'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_io.c:535,6'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_io.c:536,6'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_io.c:553,2'
          Dst:             tcdrain
        - Src:             'winpr/libwinpr/comm/comm_io.c:556,2'
          Dst:             LeaveCriticalSection
        - Src:             'winpr/libwinpr/comm/comm_io.c:560,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,18'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    CommReadFile
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 70
      functionLinenumberEnd: 362
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - hDevice
        - lpBuffer
        - nNumberOfBytesToRead
        - lpNumberOfBytesRead
        - lpOverlapped
      BBCount:         182
      ICount:          971
      EdgeCount:       224
      CyclomaticComplexity: 44
      functionsReached:
        - CommIsHandled
        - CommLog_PrintEx
        - EnterCriticalSection
        - LeaveCriticalSection
        - SetLastError
        - __errno_location
        - eventfd_read
        - memchr
        - read
        - select
        - svtime
        - tcgetattr
        - tcsetattr
        - winpr_int_assert
        - 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
                - winpr_int_assert
                - winpr_int_assert
                - select
                - winpr_int_assert
                - read
                - winpr_int_assert
                - winpr_int_assert
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - winpr_int_assert
                - winpr_int_assert
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - SetLastError
                - eventfd_read
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - winpr_int_assert
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
                - tcsetattr
                - CommLog_PrintEx
                - SetLastError
                - svtime
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
                - SetLastError
                - SetLastError
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:87,6'
              BranchSideFuncs:
                - tcgetattr
                - eventfd_read
                - winpr_int_assert
                - winpr_int_assert
                - select
                - winpr_int_assert
                - read
                - winpr_int_assert
                - winpr_int_assert
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - winpr_int_assert
                - winpr_int_assert
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - SetLastError
                - eventfd_read
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - winpr_int_assert
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
                - tcsetattr
                - CommLog_PrintEx
                - SetLastError
                - svtime
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - 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
                - winpr_int_assert
                - winpr_int_assert
                - select
                - winpr_int_assert
                - read
                - winpr_int_assert
                - winpr_int_assert
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - winpr_int_assert
                - winpr_int_assert
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - SetLastError
                - eventfd_read
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - winpr_int_assert
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
                - tcsetattr
                - CommLog_PrintEx
                - SetLastError
                - svtime
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - 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
                - winpr_int_assert
                - winpr_int_assert
                - select
                - winpr_int_assert
                - read
                - winpr_int_assert
                - winpr_int_assert
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - winpr_int_assert
                - winpr_int_assert
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - SetLastError
                - eventfd_read
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - winpr_int_assert
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
                - tcsetattr
                - CommLog_PrintEx
                - SetLastError
                - svtime
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - 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
                - winpr_int_assert
                - winpr_int_assert
                - select
                - winpr_int_assert
                - read
                - winpr_int_assert
                - winpr_int_assert
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - winpr_int_assert
                - winpr_int_assert
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - SetLastError
                - eventfd_read
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - winpr_int_assert
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
                - tcsetattr
                - CommLog_PrintEx
                - SetLastError
                - svtime
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - 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
                - winpr_int_assert
                - winpr_int_assert
                - select
                - winpr_int_assert
                - read
                - winpr_int_assert
                - winpr_int_assert
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - winpr_int_assert
                - winpr_int_assert
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - SetLastError
                - eventfd_read
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - winpr_int_assert
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
                - tcsetattr
                - CommLog_PrintEx
                - SetLastError
                - svtime
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:112,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:114,3'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:138,16'
              BranchSideFuncs:
                - eventfd_read
                - winpr_int_assert
                - winpr_int_assert
                - select
                - winpr_int_assert
                - read
                - winpr_int_assert
                - winpr_int_assert
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - winpr_int_assert
                - winpr_int_assert
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - SetLastError
                - eventfd_read
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - winpr_int_assert
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
                - tcsetattr
                - CommLog_PrintEx
                - SetLastError
                - svtime
                - CommLog_PrintEx
                - 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
                - winpr_int_assert
                - winpr_int_assert
                - select
                - winpr_int_assert
                - read
                - winpr_int_assert
                - winpr_int_assert
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - winpr_int_assert
                - winpr_int_assert
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - SetLastError
                - eventfd_read
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - winpr_int_assert
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
                - tcsetattr
                - CommLog_PrintEx
                - SetLastError
                - svtime
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:152,7'
              BranchSideFuncs:
                - eventfd_read
                - winpr_int_assert
                - winpr_int_assert
                - select
                - winpr_int_assert
                - read
                - winpr_int_assert
                - winpr_int_assert
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - winpr_int_assert
                - winpr_int_assert
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - SetLastError
                - eventfd_read
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - winpr_int_assert
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
                - tcsetattr
                - CommLog_PrintEx
                - 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_PrintEx
                - SetLastError
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:152,7'
              BranchSideFuncs:
                - eventfd_read
                - winpr_int_assert
                - winpr_int_assert
                - select
                - winpr_int_assert
                - read
                - winpr_int_assert
                - winpr_int_assert
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - winpr_int_assert
                - winpr_int_assert
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - SetLastError
                - eventfd_read
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - winpr_int_assert
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
                - tcsetattr
                - CommLog_PrintEx
                - 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
                - winpr_int_assert
                - winpr_int_assert
                - select
                - winpr_int_assert
                - read
                - winpr_int_assert
                - winpr_int_assert
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - winpr_int_assert
                - winpr_int_assert
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - SetLastError
                - eventfd_read
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - winpr_int_assert
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
                - tcsetattr
                - CommLog_PrintEx
                - SetLastError
                - svtime
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:164,8'
              BranchSideFuncs:
                - eventfd_read
                - winpr_int_assert
                - winpr_int_assert
                - select
                - winpr_int_assert
                - read
                - winpr_int_assert
                - winpr_int_assert
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - winpr_int_assert
                - winpr_int_assert
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - SetLastError
                - eventfd_read
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - winpr_int_assert
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
                - tcsetattr
                - CommLog_PrintEx
                - 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
                - winpr_int_assert
                - winpr_int_assert
                - select
                - winpr_int_assert
                - read
                - winpr_int_assert
                - winpr_int_assert
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - winpr_int_assert
                - winpr_int_assert
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - SetLastError
                - eventfd_read
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - winpr_int_assert
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
                - tcsetattr
                - CommLog_PrintEx
                - SetLastError
                - svtime
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:164,8'
              BranchSideFuncs:
                - eventfd_read
                - winpr_int_assert
                - winpr_int_assert
                - select
                - winpr_int_assert
                - read
                - winpr_int_assert
                - winpr_int_assert
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - winpr_int_assert
                - winpr_int_assert
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - SetLastError
                - eventfd_read
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - winpr_int_assert
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
                - tcsetattr
                - CommLog_PrintEx
                - 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
                - winpr_int_assert
                - winpr_int_assert
                - select
                - winpr_int_assert
                - read
                - winpr_int_assert
                - winpr_int_assert
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - winpr_int_assert
                - winpr_int_assert
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - SetLastError
                - eventfd_read
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - winpr_int_assert
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
                - tcsetattr
                - CommLog_PrintEx
                - SetLastError
                - svtime
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:164,8'
              BranchSideFuncs:
                - eventfd_read
                - winpr_int_assert
                - winpr_int_assert
                - select
                - winpr_int_assert
                - read
                - winpr_int_assert
                - winpr_int_assert
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - winpr_int_assert
                - winpr_int_assert
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - SetLastError
                - eventfd_read
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - winpr_int_assert
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
                - tcsetattr
                - CommLog_PrintEx
                - 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
                - winpr_int_assert
                - winpr_int_assert
                - select
                - winpr_int_assert
                - read
                - winpr_int_assert
                - winpr_int_assert
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - winpr_int_assert
                - winpr_int_assert
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - SetLastError
                - eventfd_read
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - winpr_int_assert
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
                - tcsetattr
                - CommLog_PrintEx
                - SetLastError
                - svtime
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:176,15'
              BranchSideFuncs:
                - eventfd_read
                - winpr_int_assert
                - winpr_int_assert
                - select
                - winpr_int_assert
                - read
                - winpr_int_assert
                - winpr_int_assert
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - winpr_int_assert
                - winpr_int_assert
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - SetLastError
                - eventfd_read
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - winpr_int_assert
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
                - tcsetattr
                - CommLog_PrintEx
                - 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
                - winpr_int_assert
                - winpr_int_assert
                - select
                - winpr_int_assert
                - read
                - winpr_int_assert
                - winpr_int_assert
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - winpr_int_assert
                - winpr_int_assert
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - SetLastError
                - eventfd_read
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - winpr_int_assert
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
                - tcsetattr
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:176,15'
              BranchSideFuncs:
                - eventfd_read
                - winpr_int_assert
                - winpr_int_assert
                - select
                - winpr_int_assert
                - read
                - winpr_int_assert
                - winpr_int_assert
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - winpr_int_assert
                - winpr_int_assert
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - SetLastError
                - eventfd_read
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - winpr_int_assert
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
                - tcsetattr
                - CommLog_PrintEx
                - 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
                - winpr_int_assert
                - winpr_int_assert
                - select
                - winpr_int_assert
                - read
                - winpr_int_assert
                - winpr_int_assert
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - winpr_int_assert
                - winpr_int_assert
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - SetLastError
                - eventfd_read
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - winpr_int_assert
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
                - tcsetattr
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:187,16'
              BranchSideFuncs:
                - eventfd_read
                - winpr_int_assert
                - winpr_int_assert
                - select
                - winpr_int_assert
                - read
                - winpr_int_assert
                - winpr_int_assert
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - winpr_int_assert
                - winpr_int_assert
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - SetLastError
                - eventfd_read
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - winpr_int_assert
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
                - tcsetattr
                - CommLog_PrintEx
                - 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
                - winpr_int_assert
                - winpr_int_assert
                - select
                - winpr_int_assert
                - read
                - winpr_int_assert
                - winpr_int_assert
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - winpr_int_assert
                - winpr_int_assert
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - SetLastError
                - eventfd_read
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - winpr_int_assert
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
                - tcsetattr
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:187,16'
              BranchSideFuncs:
                - eventfd_read
                - winpr_int_assert
                - winpr_int_assert
                - select
                - winpr_int_assert
                - read
                - winpr_int_assert
                - winpr_int_assert
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - winpr_int_assert
                - winpr_int_assert
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - SetLastError
                - eventfd_read
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - winpr_int_assert
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
                - tcsetattr
                - CommLog_PrintEx
                - 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
                - winpr_int_assert
                - winpr_int_assert
                - select
                - winpr_int_assert
                - read
                - winpr_int_assert
                - winpr_int_assert
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - winpr_int_assert
                - winpr_int_assert
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - SetLastError
                - eventfd_read
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - winpr_int_assert
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:198,31'
              BranchSideFuncs:
                - tcsetattr
                - eventfd_read
                - winpr_int_assert
                - winpr_int_assert
                - select
                - winpr_int_assert
                - read
                - winpr_int_assert
                - winpr_int_assert
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - winpr_int_assert
                - winpr_int_assert
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - SetLastError
                - eventfd_read
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - winpr_int_assert
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - 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
                - winpr_int_assert
                - winpr_int_assert
                - select
                - winpr_int_assert
                - read
                - winpr_int_assert
                - winpr_int_assert
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - winpr_int_assert
                - winpr_int_assert
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - SetLastError
                - eventfd_read
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - winpr_int_assert
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:214,6'
              BranchSideFuncs:
                - eventfd_read
                - winpr_int_assert
                - winpr_int_assert
                - select
                - winpr_int_assert
                - read
                - winpr_int_assert
                - winpr_int_assert
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - winpr_int_assert
                - winpr_int_assert
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - SetLastError
                - eventfd_read
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - winpr_int_assert
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:201,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:203,4'
              BranchSideFuncs:
                - CommLog_PrintEx
                - SetLastError
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:210,2'
              BranchSideFuncs:
                - eventfd_read
                - winpr_int_assert
                - winpr_int_assert
                - select
                - winpr_int_assert
                - read
                - winpr_int_assert
                - winpr_int_assert
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - winpr_int_assert
                - winpr_int_assert
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - SetLastError
                - eventfd_read
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - winpr_int_assert
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - 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
                - winpr_int_assert
                - winpr_int_assert
                - select
                - winpr_int_assert
                - read
                - winpr_int_assert
                - winpr_int_assert
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - winpr_int_assert
                - winpr_int_assert
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - SetLastError
                - eventfd_read
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - winpr_int_assert
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:230,13'
              BranchSideFuncs:
                - eventfd_read
                - winpr_int_assert
                - winpr_int_assert
                - select
                - winpr_int_assert
                - read
                - winpr_int_assert
                - winpr_int_assert
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - winpr_int_assert
                - winpr_int_assert
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - SetLastError
                - eventfd_read
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - winpr_int_assert
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - 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
                - winpr_int_assert
                - winpr_int_assert
                - select
                - winpr_int_assert
                - read
                - winpr_int_assert
                - winpr_int_assert
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - winpr_int_assert
                - winpr_int_assert
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - SetLastError
                - eventfd_read
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - winpr_int_assert
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:223,2'
              BranchSideFuncs:
                - eventfd_read
                - winpr_int_assert
                - winpr_int_assert
                - select
                - winpr_int_assert
                - read
                - winpr_int_assert
                - winpr_int_assert
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - winpr_int_assert
                - winpr_int_assert
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - SetLastError
                - eventfd_read
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - winpr_int_assert
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:236,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:237,15'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - select
                - winpr_int_assert
                - read
                - winpr_int_assert
                - winpr_int_assert
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - winpr_int_assert
                - winpr_int_assert
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - SetLastError
                - eventfd_read
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - winpr_int_assert
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:239,2'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - select
                - winpr_int_assert
                - read
                - winpr_int_assert
                - winpr_int_assert
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - winpr_int_assert
                - winpr_int_assert
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - SetLastError
                - eventfd_read
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - winpr_int_assert
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:240,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:240,2'
              BranchSideFuncs:
                - winpr_int_assert
                - select
                - winpr_int_assert
                - read
                - winpr_int_assert
                - winpr_int_assert
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - winpr_int_assert
                - winpr_int_assert
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - SetLastError
                - eventfd_read
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - winpr_int_assert
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:240,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:241,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:241,2'
              BranchSideFuncs:
                - select
                - winpr_int_assert
                - read
                - winpr_int_assert
                - winpr_int_assert
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - winpr_int_assert
                - winpr_int_assert
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - SetLastError
                - eventfd_read
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - winpr_int_assert
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:241,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:246,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:248,8'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - SetLastError
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:255,6'
              BranchSideFuncs:
                - winpr_int_assert
                - read
                - winpr_int_assert
                - winpr_int_assert
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - winpr_int_assert
                - winpr_int_assert
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - SetLastError
                - eventfd_read
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - winpr_int_assert
                - winpr_int_assert
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:255,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:258,3'
              BranchSideFuncs:
                - SetLastError
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:264,6'
              BranchSideFuncs:
                - winpr_int_assert
                - read
                - winpr_int_assert
                - winpr_int_assert
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - winpr_int_assert
                - winpr_int_assert
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - SetLastError
                - eventfd_read
                - winpr_int_assert
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - winpr_int_assert
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:264,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:267,13'
              BranchSideFuncs:
                - eventfd_read
                - winpr_int_assert
                - winpr_int_assert
                - read
                - winpr_int_assert
                - winpr_int_assert
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - winpr_int_assert
                - winpr_int_assert
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - SetLastError
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:298,6'
              BranchSideFuncs:
                - winpr_int_assert
                - read
                - winpr_int_assert
                - winpr_int_assert
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - winpr_int_assert
                - winpr_int_assert
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:269,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:271,8'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - read
                - winpr_int_assert
                - winpr_int_assert
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - winpr_int_assert
                - winpr_int_assert
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - SetLastError
                - SetLastError
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:288,7'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - read
                - winpr_int_assert
                - winpr_int_assert
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - winpr_int_assert
                - winpr_int_assert
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - SetLastError
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:271,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:273,5'
              BranchSideFuncs:
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:278,10'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - read
                - winpr_int_assert
                - winpr_int_assert
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - winpr_int_assert
                - winpr_int_assert
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - SetLastError
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:285,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:285,4'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - read
                - winpr_int_assert
                - winpr_int_assert
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - winpr_int_assert
                - winpr_int_assert
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - SetLastError
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:285,4'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:288,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:290,4'
              BranchSideFuncs:
                - SetLastError
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:294,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - read
                - winpr_int_assert
                - winpr_int_assert
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - winpr_int_assert
                - winpr_int_assert
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:294,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:294,3'
              BranchSideFuncs:
                - winpr_int_assert
                - read
                - winpr_int_assert
                - winpr_int_assert
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - winpr_int_assert
                - winpr_int_assert
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:294,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:298,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:300,25'
              BranchSideFuncs:
                - read
                - winpr_int_assert
                - winpr_int_assert
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - winpr_int_assert
                - winpr_int_assert
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:354,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:302,20'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:302,24'
              BranchSideFuncs:
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - SetLastError
                - LeaveCriticalSection
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:304,9'
              BranchSideFuncs:
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - SetLastError
                - LeaveCriticalSection
                - LeaveCriticalSection
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:302,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:304,9'
              BranchSideFuncs:
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_PrintEx
                - __errno_location
                - __errno_location
                - winpr_int_assert
                - SetLastError
                - LeaveCriticalSection
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:334,7'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - winpr_int_assert
                - winpr_int_assert
                - memchr
                - SetLastError
                - LeaveCriticalSection
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:316,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:319,5'
              BranchSideFuncs:
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:321,13'
              BranchSideFuncs:
                - __errno_location
                - winpr_int_assert
                - SetLastError
                - LeaveCriticalSection
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:321,13'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:323,5'
              BranchSideFuncs:
                - SetLastError
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:328,5'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:334,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:337,4'
              BranchSideFuncs:
                - SetLastError
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:341,26'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - winpr_int_assert
                - winpr_int_assert
                - memchr
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:341,26'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:341,26'
              BranchSideFuncs:
                - winpr_int_assert
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - winpr_int_assert
                - winpr_int_assert
                - memchr
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:341,26'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:341,26'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:341,26'
              BranchSideFuncs:
                - winpr_int_assert
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - winpr_int_assert
                - winpr_int_assert
                - memchr
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:341,26'
              BranchSideFuncs:
                - winpr_int_assert
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - winpr_int_assert
                - winpr_int_assert
                - memchr
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:341,26'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:341,26'
              BranchSideFuncs:
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - winpr_int_assert
                - winpr_int_assert
                - memchr
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:341,26'
              BranchSideFuncs:
                - winpr_int_assert
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - winpr_int_assert
                - winpr_int_assert
                - memchr
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:341,26'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:341,26'
              BranchSideFuncs:
                - winpr_int_assert
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - winpr_int_assert
                - winpr_int_assert
                - memchr
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:341,26'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:341,26'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:341,26'
              BranchSideFuncs:
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - winpr_int_assert
                - winpr_int_assert
                - memchr
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:341,26'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:344,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:346,8'
              BranchSideFuncs:
                - LeaveCriticalSection
                - LeaveCriticalSection
                - winpr_int_assert
                - winpr_int_assert
                - memchr
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:350,25'
              BranchSideFuncs:
                - LeaveCriticalSection
                - LeaveCriticalSection
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:346,33'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:347,15'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - memchr
                - LeaveCriticalSection
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:349,3'
              BranchSideFuncs:
                - LeaveCriticalSection
                - LeaveCriticalSection
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:347,43'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:347,43'
              BranchSideFuncs:
                - winpr_int_assert
                - memchr
                - LeaveCriticalSection
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:347,43'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:347,43'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:347,43'
              BranchSideFuncs:
                - winpr_int_assert
                - memchr
                - LeaveCriticalSection
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:347,43'
              BranchSideFuncs:
                - winpr_int_assert
                - memchr
                - LeaveCriticalSection
                - LeaveCriticalSection
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:347,43'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:347,43'
              BranchSideFuncs:
                - memchr
                - LeaveCriticalSection
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:347,43'
              BranchSideFuncs:
                - winpr_int_assert
                - memchr
                - LeaveCriticalSection
                - LeaveCriticalSection
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:347,43'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:347,43'
              BranchSideFuncs:
                - winpr_int_assert
                - memchr
                - LeaveCriticalSection
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:347,43'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:347,43'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:347,43'
              BranchSideFuncs:
                - memchr
                - LeaveCriticalSection
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:347,43'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:346,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:348,5'
              BranchSideFuncs:
                - LeaveCriticalSection
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:349,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_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_io.c:115,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_io.c:143,3'
          Dst:             CommLog_PrintEx
        - 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_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_io.c:207,4'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_io.c:231,9'
          Dst:             eventfd_read
        - Src:             'winpr/libwinpr/comm/comm_io.c:240,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_io.c:241,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_io.c:244,10'
          Dst:             select
        - Src:             'winpr/libwinpr/comm/comm_io.c:249,3'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_io.c:249,3'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_io.c:249,3'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/comm/comm_io.c:249,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_io.c:251,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_io.c:258,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_io.c:269,7'
          Dst:             eventfd_read
        - Src:             'winpr/libwinpr/comm/comm_io.c:271,8'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_io.c:273,5'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_io.c:279,5'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_io.c:279,5'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_io.c:279,5'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/comm/comm_io.c:279,5'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_io.c:285,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_io.c:285,4'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_io.c:290,4'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_io.c:294,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_io.c:300,20'
          Dst:             read
        - Src:             'winpr/libwinpr/comm/comm_io.c:305,4'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_io.c:312,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_io.c:312,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_io.c:312,4'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/comm/comm_io.c:312,4'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_io.c:316,8'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_io.c:321,13'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_io.c:323,5'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_io.c:328,5'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_io.c:329,5'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_io.c:337,4'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_io.c:341,26'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_io.c:341,26'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_io.c:343,3'
          Dst:             EnterCriticalSection
        - Src:             'winpr/libwinpr/comm/comm_io.c:347,43'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_io.c:347,43'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_io.c:347,8'
          Dst:             memchr
        - Src:             'winpr/libwinpr/comm/comm_io.c:350,3'
          Dst:             LeaveCriticalSection
        - Src:             'winpr/libwinpr/comm/comm_io.c:354,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_io.c:357,2'
          Dst:             LeaveCriticalSection
        - Src:             'winpr/libwinpr/comm/comm_io.c:360,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: 1205
      functionLinenumberEnd: 1221
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - char
        - char
        - int
      constantsTouched: []
      argNames:
        - a
        - b
        - flags
      BBCount:         10
      ICount:          62
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    4
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/image.c:1206,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:1208,8'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/image.c:1220,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/image.c:1208,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:1210,30'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/image.c:1217,4'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/image.c:1212,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:1213,5'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/image.c:1214,3'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    Stream_Read
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 699
      functionLinenumberEnd: 705
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - _s
        - _b
        - _n
      BBCount:         24
      ICount:          83
      EdgeCount:       25
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_GetRemainingCapacity
        - Stream_Seek
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:700,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:700,3'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_GetRemainingCapacity
                - winpr_int_assert
                - Stream_Seek.4308
            - BranchSide:      'winpr/include/winpr/stream.h:700,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:701,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:701,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - winpr_int_assert
                - Stream_Seek.4308
            - BranchSide:      'winpr/include/winpr/stream.h:701,3'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_GetRemainingCapacity
                - winpr_int_assert
                - Stream_Seek.4308
        - Branch String:   'winpr/include/winpr/stream.h:701,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:701,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - winpr_int_assert
                - Stream_Seek.4308
            - BranchSide:      'winpr/include/winpr/stream.h:701,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:702,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:702,3'
              BranchSideFuncs:
                - Stream_Seek.4308
            - BranchSide:      'winpr/include/winpr/stream.h:702,3'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:700,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:701,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:702,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:702,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:704,3'
          Dst:             Stream_Seek
    - functionName:    Stream_Seek
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 124
      functionLinenumberEnd: 128
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - s
        - _offset
      BBCount:         15
      ICount:          53
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - winpr_int_assert
      functionUses:    9
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:125,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:125,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - winpr_int_assert
            - BranchSide:      'winpr/include/winpr/stream.h:125,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:126,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:126,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/stream.h:126,3'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:125,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:126,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:126,3'
          Dst:             winpr_int_assert
    - functionName:    Stream_Write
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1154
      functionLinenumberEnd: 1163
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - _s
        - _b
        - _n
      BBCount:         24
      ICount:          80
      EdgeCount:       25
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_GetRemainingCapacity
        - Stream_Seek
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:1155,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:1155,7'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - Stream_GetRemainingCapacity
                - winpr_int_assert
                - Stream_Seek.4308
            - BranchSide:      'winpr/include/winpr/stream.h:1157,4'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - Stream_GetRemainingCapacity
                - winpr_int_assert
                - Stream_Seek.4308
        - Branch String:   'winpr/include/winpr/stream.h:1157,4'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:1157,4'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_GetRemainingCapacity
                - winpr_int_assert
                - Stream_Seek.4308
            - BranchSide:      'winpr/include/winpr/stream.h:1157,4'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:1158,4'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:1158,4'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - winpr_int_assert
                - Stream_Seek.4308
            - BranchSide:      'winpr/include/winpr/stream.h:1158,4'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:1159,4'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:1159,4'
              BranchSideFuncs:
                - Stream_Seek.4308
            - BranchSide:      'winpr/include/winpr/stream.h:1159,4'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1157,4'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1158,4'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1159,4'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:1159,4'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1161,4'
          Dst:             Stream_Seek
    - functionName:    Stream_Fill
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1200
      functionLinenumberEnd: 1205
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - size_t
      constantsTouched: []
      argNames:
        - _s
        - _v
        - _n
      BBCount:         15
      ICount:          60
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - Stream_Seek
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:1201,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:1201,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - winpr_int_assert
                - Stream_Seek.4308
            - BranchSide:      'winpr/include/winpr/stream.h:1201,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:1202,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:1202,3'
              BranchSideFuncs:
                - Stream_Seek.4308
            - BranchSide:      'winpr/include/winpr/stream.h:1202,3'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1201,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1202,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:1202,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1204,3'
          Dst:             Stream_Seek
    - functionName:    winpr_Data_Get_INT32
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/endian.h'
      linkageType:     InternalLinkage
      functionLinenumber: 148
      functionLinenumberEnd: 150
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - d
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_Data_Get_UINT32
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/endian.h:149,22'
          Dst:             winpr_Data_Get_UINT32
    - functionName:    winpr_Data_Get_UINT32
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/endian.h'
      linkageType:     InternalLinkage
      functionLinenumber: 113
      functionLinenumberEnd: 123
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - d
      BBCount:         13
      ICount:          69
      EdgeCount:       14
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/endian.h:114,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/endian.h:114,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/endian.h:114,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/endian.h:118,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/endian.h:120,6'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/endian.h:123,10'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/include/winpr/endian.h:114,3'
          Dst:             winpr_int_assert
    - functionName:    winpr_Data_Write_INT32
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/endian.h'
      linkageType:     InternalLinkage
      functionLinenumber: 341
      functionLinenumberEnd: 346
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - d
        - v
      BBCount:         9
      ICount:          48
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_Data_Write_UINT16
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/endian.h:342,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/endian.h:342,3'
              BranchSideFuncs:
                - winpr_Data_Write_UINT16.4322
                - winpr_Data_Write_UINT16.4322
            - BranchSide:      'winpr/include/winpr/endian.h:342,3'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/include/winpr/endian.h:342,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/endian.h:344,3'
          Dst:             winpr_Data_Write_UINT16
        - Src:             'winpr/include/winpr/endian.h:345,3'
          Dst:             winpr_Data_Write_UINT16
    - functionName:    winpr_Data_Write_UINT16
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/endian.h'
      linkageType:     InternalLinkage
      functionLinenumber: 235
      functionLinenumberEnd: 240
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - d
        - v
      BBCount:         9
      ICount:          51
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    5
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/endian.h:236,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/endian.h:236,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/endian.h:236,3'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/include/winpr/endian.h:236,3'
          Dst:             winpr_int_assert
    - functionName:    winpr_Data_Get_UINT16
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/endian.h'
      linkageType:     InternalLinkage
      functionLinenumber: 59
      functionLinenumberEnd: 69
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - d
      BBCount:         13
      ICount:          73
      EdgeCount:       14
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/endian.h:60,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/endian.h:60,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/endian.h:60,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/endian.h:64,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/endian.h:66,6'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/endian.h:69,10'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/include/winpr/endian.h:60,3'
          Dst:             winpr_int_assert
    - functionName:    winpr_Data_Get_UINT8
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/endian.h'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      char
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - d
      BBCount:         9
      ICount:          35
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/endian.h:40,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/endian.h:40,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/endian.h:40,3'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/include/winpr/endian.h:40,3'
          Dst:             winpr_int_assert
    - functionName:    winpr_Data_Write_UINT32
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/endian.h'
      linkageType:     InternalLinkage
      functionLinenumber: 258
      functionLinenumberEnd: 263
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - d
        - v
      BBCount:         9
      ICount:          48
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_Data_Write_UINT16
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/endian.h:259,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/endian.h:259,3'
              BranchSideFuncs:
                - winpr_Data_Write_UINT16.4322
                - winpr_Data_Write_UINT16.4322
            - BranchSide:      'winpr/include/winpr/endian.h:259,3'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/include/winpr/endian.h:259,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/endian.h:261,3'
          Dst:             winpr_Data_Write_UINT16
        - Src:             'winpr/include/winpr/endian.h:262,3'
          Dst:             winpr_Data_Write_UINT16
    - functionName:    winpr_Data_Write_UINT8
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/endian.h'
      linkageType:     InternalLinkage
      functionLinenumber: 221
      functionLinenumberEnd: 225
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - d
        - v
      BBCount:         9
      ICount:          39
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/endian.h:222,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/endian.h:222,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/endian.h:222,3'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/include/winpr/endian.h:222,3'
          Dst:             winpr_int_assert
    - functionName:    winpr_convert_to_png
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1079
      functionLinenumberEnd: 1116
      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:         18
      ICount:          74
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/image.c:1080,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:1080,2'
              BranchSideFuncs:
                - winpr_int_assert
                - WLog_Print_dbg_tag.4337
            - BranchSide:      'winpr/libwinpr/utils/image.c:1080,2'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - WLog_Print_dbg_tag.4337
        - Branch String:   'winpr/libwinpr/utils/image.c:1080,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:1080,2'
              BranchSideFuncs:
                - winpr_int_assert
                - WLog_Print_dbg_tag.4337
            - BranchSide:      'winpr/libwinpr/utils/image.c:1080,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/image.c:1081,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:1081,2'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.4337
            - BranchSide:      'winpr/libwinpr/utils/image.c:1081,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/utils/image.c:1080,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:1081,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:1115,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 216
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - tag
        - log_level
        - line
        - file
        - fkt
      BBCount:         9
      ICount:          67
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintMessageVA
      functionUses:    17
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/wlog.h:206,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/wlog.h:207,30'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessageVA
            - BranchSide:      'winpr/include/winpr/wlog.h:209,26'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessageVA
        - Branch String:   'winpr/include/winpr/wlog.h:209,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/wlog.h:209,7'
              BranchSideFuncs:
                - WLog_PrintMessageVA
            - BranchSide:      'winpr/include/winpr/wlog.h:212,4'
              BranchSideFuncs:
                - WLog_PrintMessageVA
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:207,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:209,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:213,4'
          Dst:             WLog_PrintMessageVA
    - functionName:    winpr_convert_to_jpeg
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 648
      functionLinenumberEnd: 656
      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:         18
      ICount:          74
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/image.c:649,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:649,2'
              BranchSideFuncs:
                - winpr_int_assert
                - WLog_Print_dbg_tag.4337
            - BranchSide:      'winpr/libwinpr/utils/image.c:649,2'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - WLog_Print_dbg_tag.4337
        - Branch String:   'winpr/libwinpr/utils/image.c:649,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:649,2'
              BranchSideFuncs:
                - winpr_int_assert
                - WLog_Print_dbg_tag.4337
            - BranchSide:      'winpr/libwinpr/utils/image.c:649,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/image.c:650,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:650,2'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.4337
            - BranchSide:      'winpr/libwinpr/utils/image.c:650,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/utils/image.c:649,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:650,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:655,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    winpr_convert_to_webp
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 785
      functionLinenumberEnd: 793
      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:         18
      ICount:          74
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/image.c:786,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:786,2'
              BranchSideFuncs:
                - winpr_int_assert
                - WLog_Print_dbg_tag.4337
            - BranchSide:      'winpr/libwinpr/utils/image.c:786,2'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - WLog_Print_dbg_tag.4337
        - Branch String:   'winpr/libwinpr/utils/image.c:786,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:786,2'
              BranchSideFuncs:
                - winpr_int_assert
                - WLog_Print_dbg_tag.4337
            - BranchSide:      'winpr/libwinpr/utils/image.c:786,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/image.c:787,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:787,2'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.4337
            - BranchSide:      'winpr/libwinpr/utils/image.c:787,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/utils/image.c:786,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:787,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:792,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    winpr_image_format_extension
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1308
      functionLinenumberEnd: 1322
      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:1309,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:1312,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/image.c:1314,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/image.c:1316,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/image.c:1318,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/image.c:1320,4'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    winpr_image_format_mime
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1291
      functionLinenumberEnd: 1305
      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:1292,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:1295,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/image.c:1297,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/image.c:1299,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/image.c:1301,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/image.c:1303,4'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    compare_pixel
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1224
      functionLinenumberEnd: 1240
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - pa
        - pb
        - flags
      BBCount:         27
      ICount:          133
      EdgeCount:       32
      CyclomaticComplexity: 7
      functionsReached:
        - compare_byte_relaxed
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/image.c:1225,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:1225,2'
              BranchSideFuncs:
                - winpr_int_assert
                - compare_byte_relaxed
                - compare_byte_relaxed
                - compare_byte_relaxed
                - compare_byte_relaxed
            - BranchSide:      'winpr/libwinpr/utils/image.c:1225,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/image.c:1226,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:1226,2'
              BranchSideFuncs:
                - compare_byte_relaxed
                - compare_byte_relaxed
                - compare_byte_relaxed
                - compare_byte_relaxed
            - BranchSide:      'winpr/libwinpr/utils/image.c:1226,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/image.c:1228,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:1229,3'
              BranchSideFuncs:
                - compare_byte_relaxed
                - compare_byte_relaxed
                - compare_byte_relaxed
            - BranchSide:      'winpr/libwinpr/utils/image.c:1230,31'
              BranchSideFuncs:
                - compare_byte_relaxed
                - compare_byte_relaxed
                - compare_byte_relaxed
        - Branch String:   'winpr/libwinpr/utils/image.c:1230,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:1231,3'
              BranchSideFuncs:
                - compare_byte_relaxed
                - compare_byte_relaxed
            - BranchSide:      'winpr/libwinpr/utils/image.c:1232,31'
              BranchSideFuncs:
                - compare_byte_relaxed
                - compare_byte_relaxed
        - Branch String:   'winpr/libwinpr/utils/image.c:1232,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:1233,3'
              BranchSideFuncs:
                - compare_byte_relaxed
            - BranchSide:      'winpr/libwinpr/utils/image.c:1234,7'
              BranchSideFuncs:
                - compare_byte_relaxed
        - Branch String:   'winpr/libwinpr/utils/image.c:1234,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:1236,32'
              BranchSideFuncs:
                - compare_byte_relaxed
            - BranchSide:      'winpr/libwinpr/utils/image.c:1239,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/image.c:1236,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:1237,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/image.c:1238,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/image.c:1225,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:1226,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:1228,7'
          Dst:             compare_byte_relaxed
        - Src:             'winpr/libwinpr/utils/image.c:1230,7'
          Dst:             compare_byte_relaxed
        - Src:             'winpr/libwinpr/utils/image.c:1232,7'
          Dst:             compare_byte_relaxed
        - Src:             'winpr/libwinpr/utils/image.c:1236,8'
          Dst:             compare_byte_relaxed
    - functionName:    convert
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1164
      functionLinenumberEnd: 1202
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - image
        - pstride
        - flags
      BBCount:         32
      ICount:          230
      EdgeCount:       37
      CyclomaticComplexity: 7
      functionsReached:
        - calloc
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/image.c:1165,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:1165,2'
              BranchSideFuncs:
                - winpr_int_assert
                - calloc
            - BranchSide:      'winpr/libwinpr/utils/image.c:1165,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/image.c:1166,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:1166,2'
              BranchSideFuncs:
                - calloc
            - BranchSide:      'winpr/libwinpr/utils/image.c:1166,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/image.c:1169,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:1170,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/image.c:1172,24'
              BranchSideFuncs:
                - calloc
        - Branch String:   'winpr/libwinpr/utils/image.c:1174,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:1176,15'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/image.c:1201,9'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/image.c:1176,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:1178,27'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/image.c:1199,14'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/image.c:1180,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:1181,12'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/image.c:1184,17'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/image.c:1184,5'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:0,0'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/image.c:1186,25'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/image.c:1165,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:1166,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:1173,15'
          Dst:             calloc
    - functionName:    winpr_image_equal
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1243
      functionLinenumberEnd: 1288
      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:1244,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:1245,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/image.c:1246,7'
              BranchSideFuncs:
                - convert
                - convert
                - free
                - free
                - compare_pixel
        - Branch String:   'winpr/libwinpr/utils/image.c:1246,14'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:1246,18'
              BranchSideFuncs:
                - convert
                - convert
                - free
                - free
                - compare_pixel
            - BranchSide:      'winpr/libwinpr/utils/image.c:1247,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/image.c:1246,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:1247,3'
              BranchSideFuncs:
                - convert
                - convert
                - free
                - free
                - compare_pixel
            - BranchSide:      'winpr/libwinpr/utils/image.c:1249,6'
              BranchSideFuncs:
                - convert
                - convert
                - free
                - free
                - compare_pixel
        - Branch String:   'winpr/libwinpr/utils/image.c:1249,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:1250,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/image.c:1251,6'
              BranchSideFuncs:
                - convert
                - convert
                - free
                - free
                - compare_pixel
        - Branch String:   'winpr/libwinpr/utils/image.c:1251,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:1252,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/image.c:1254,7'
              BranchSideFuncs:
                - convert
                - convert
                - free
                - free
                - compare_pixel
        - Branch String:   'winpr/libwinpr/utils/image.c:1254,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:1256,7'
              BranchSideFuncs:
                - convert
                - convert
                - free
                - free
                - compare_pixel
            - BranchSide:      'winpr/libwinpr/utils/image.c:1262,7'
              BranchSideFuncs:
                - convert
                - convert
                - free
                - free
                - compare_pixel
        - Branch String:   'winpr/libwinpr/utils/image.c:1256,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:1257,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/image.c:1258,7'
              BranchSideFuncs:
                - convert
                - convert
                - free
                - free
                - compare_pixel
        - Branch String:   'winpr/libwinpr/utils/image.c:1258,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:1259,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/image.c:1260,2'
              BranchSideFuncs:
                - convert
                - convert
                - free
                - free
                - compare_pixel
        - Branch String:   'winpr/libwinpr/utils/image.c:1267,12'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:1267,15'
              BranchSideFuncs:
                - free
                - free
                - compare_pixel
            - BranchSide:      'winpr/libwinpr/utils/image.c:1285,7'
              BranchSideFuncs:
                - free
                - free
        - Branch String:   'winpr/libwinpr/utils/image.c:1267,21'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:1267,25'
              BranchSideFuncs:
                - free
                - free
                - compare_pixel
            - BranchSide:      'winpr/libwinpr/utils/image.c:1285,7'
              BranchSideFuncs:
                - free
                - free
        - Branch String:   'winpr/libwinpr/utils/image.c:1267,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:1269,6'
              BranchSideFuncs:
                - free
                - free
                - compare_pixel
            - BranchSide:      'winpr/libwinpr/utils/image.c:1285,7'
              BranchSideFuncs:
                - free
                - free
        - Branch String:   'winpr/libwinpr/utils/image.c:1270,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:1272,25'
              BranchSideFuncs:
                - free
                - free
                - compare_pixel
            - BranchSide:      'winpr/libwinpr/utils/image.c:1284,2'
              BranchSideFuncs:
                - free
                - free
        - Branch String:   'winpr/libwinpr/utils/image.c:1275,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:1277,23'
              BranchSideFuncs:
                - compare_pixel
                - free
                - free
            - BranchSide:      'winpr/libwinpr/utils/image.c:1283,3'
              BranchSideFuncs:
                - free
                - free
                - compare_pixel
        - Branch String:   'winpr/libwinpr/utils/image.c:1280,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:1281,9'
              BranchSideFuncs:
                - free
                - free
                - compare_pixel
            - BranchSide:      'winpr/libwinpr/utils/image.c:1282,4'
              BranchSideFuncs:
                - free
                - free
                - compare_pixel
      Callsites:
        - Src:             'winpr/libwinpr/utils/image.c:1265,16'
          Dst:             convert
        - Src:             'winpr/libwinpr/utils/image.c:1266,16'
          Dst:             convert
        - Src:             'winpr/libwinpr/utils/image.c:1280,10'
          Dst:             compare_pixel
    - functionName:    winpr_image_format_is_supported
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1144
      functionLinenumberEnd: 1161
      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:1145,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:1157,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/image.c:1159,4'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    winpr_image_free
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 634
      functionLinenumberEnd: 642
      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:635,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:636,3'
              BranchSideFuncs:
                - free
                - free
            - BranchSide:      'winpr/libwinpr/utils/image.c:638,6'
              BranchSideFuncs:
                - free
                - free
        - Branch String:   'winpr/libwinpr/utils/image.c:638,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:639,8'
              BranchSideFuncs:
                - free
                - free
            - BranchSide:      'winpr/libwinpr/utils/image.c:641,7'
              BranchSideFuncs:
                - free
      Callsites:       []
    - functionName:    winpr_image_new
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 624
      functionLinenumberEnd: 631
      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:625,27'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:625,10'
              BranchSideFuncs:
                - calloc
            - BranchSide:      'winpr/libwinpr/utils/image.c:625,27'
              BranchSideFuncs:
                - calloc
        - Branch String:   'winpr/libwinpr/utils/image.c:627,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:628,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/image.c:630,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/image.c:625,27'
          Dst:             calloc
    - functionName:    winpr_convert_from_png
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1125
      functionLinenumberEnd: 1139
      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:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/image.c:1138,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    winpr_convert_from_jpeg
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 721
      functionLinenumberEnd: 730
      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:         36
      ICount:          105
      EdgeCount:       37
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/image.c:722,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:722,2'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - WLog_Print_dbg_tag.4337
            - BranchSide:      'winpr/libwinpr/utils/image.c:722,2'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - WLog_Print_dbg_tag.4337
        - Branch String:   'winpr/libwinpr/utils/image.c:722,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:722,2'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - WLog_Print_dbg_tag.4337
            - BranchSide:      'winpr/libwinpr/utils/image.c:722,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/image.c:723,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:723,2'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - WLog_Print_dbg_tag.4337
            - BranchSide:      'winpr/libwinpr/utils/image.c:723,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/image.c:724,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:724,2'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - WLog_Print_dbg_tag.4337
            - BranchSide:      'winpr/libwinpr/utils/image.c:724,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/image.c:725,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:725,2'
              BranchSideFuncs:
                - winpr_int_assert
                - WLog_Print_dbg_tag.4337
            - BranchSide:      'winpr/libwinpr/utils/image.c:725,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/image.c:726,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:726,2'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.4337
            - BranchSide:      'winpr/libwinpr/utils/image.c:726,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/utils/image.c:722,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:723,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:724,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:725,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:726,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:729,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    winpr_convert_from_webp
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 828
      functionLinenumberEnd: 841
      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:         36
      ICount:          113
      EdgeCount:       37
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/image.c:829,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:829,2'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - WLog_Print_dbg_tag.4337
            - BranchSide:      'winpr/libwinpr/utils/image.c:829,2'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - WLog_Print_dbg_tag.4337
        - Branch String:   'winpr/libwinpr/utils/image.c:829,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:829,2'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - WLog_Print_dbg_tag.4337
            - BranchSide:      'winpr/libwinpr/utils/image.c:829,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/image.c:830,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:830,2'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - WLog_Print_dbg_tag.4337
            - BranchSide:      'winpr/libwinpr/utils/image.c:830,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/image.c:831,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:831,2'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - WLog_Print_dbg_tag.4337
            - BranchSide:      'winpr/libwinpr/utils/image.c:831,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/image.c:832,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:832,2'
              BranchSideFuncs:
                - winpr_int_assert
                - WLog_Print_dbg_tag.4337
            - BranchSide:      'winpr/libwinpr/utils/image.c:832,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/image.c:833,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:833,2'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.4337
            - BranchSide:      'winpr/libwinpr/utils/image.c:833,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/utils/image.c:829,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:830,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:831,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:832,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:833,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:840,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    winpr_image_bitmap_read_buffer
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 406
      functionLinenumberEnd: 530
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - image
        - buffer
        - size
      BBCount:         100
      ICount:          650
      EdgeCount:       126
      CyclomaticComplexity: 28
      functionsReached:
        - Stream_CheckAndLogRequiredCapacityEx
        - Stream_GetPosition
        - Stream_Read
        - Stream_Seek
        - Stream_StaticConstInit
        - WLog_Print_dbg_tag
        - readBitmapFileHeader
        - readBitmapInfoHeader
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/image.c:414,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:415,3'
              BranchSideFuncs:
                - readBitmapFileHeader
                - free
                - readBitmapInfoHeader
                - Stream_GetPosition.4359
                - Stream_CheckAndLogRequiredCapacityEx
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Read.4302
                - Stream_Seek.4308
                - Stream_Read.4302
                - Stream_Seek.4308
                - malloc
                - WLog_Print_dbg_tag.4337
                - WLog_Print_dbg_tag.4337
                - WLog_Print_dbg_tag.4337
                - WLog_Print_dbg_tag.4337
                - WLog_Print_dbg_tag.4337
            - BranchSide:      'winpr/libwinpr/utils/image.c:417,9'
              BranchSideFuncs:
                - readBitmapFileHeader
                - free
                - readBitmapInfoHeader
                - Stream_GetPosition.4359
                - Stream_CheckAndLogRequiredCapacityEx
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Read.4302
                - Stream_Seek.4308
                - Stream_Read.4302
                - Stream_Seek.4308
                - malloc
                - WLog_Print_dbg_tag.4337
                - WLog_Print_dbg_tag.4337
                - WLog_Print_dbg_tag.4337
                - WLog_Print_dbg_tag.4337
                - WLog_Print_dbg_tag.4337
        - Branch String:   'winpr/libwinpr/utils/image.c:418,36'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:418,61'
              BranchSideFuncs:
                - readBitmapInfoHeader
                - free
                - Stream_GetPosition.4359
                - Stream_CheckAndLogRequiredCapacityEx
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Read.4302
                - Stream_Seek.4308
                - Stream_Read.4302
                - Stream_Seek.4308
                - malloc
                - WLog_Print_dbg_tag.4337
                - WLog_Print_dbg_tag.4337
                - WLog_Print_dbg_tag.4337
                - WLog_Print_dbg_tag.4337
                - WLog_Print_dbg_tag.4337
            - BranchSide:      'winpr/libwinpr/utils/image.c:419,3'
              BranchSideFuncs:
                - free
        - Branch String:   'winpr/libwinpr/utils/image.c:418,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:419,3'
              BranchSideFuncs:
                - Stream_GetPosition.4359
                - Stream_CheckAndLogRequiredCapacityEx
                - free
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Read.4302
                - Stream_Seek.4308
                - Stream_Read.4302
                - Stream_Seek.4308
                - malloc
                - WLog_Print_dbg_tag.4337
                - WLog_Print_dbg_tag.4337
                - WLog_Print_dbg_tag.4337
                - WLog_Print_dbg_tag.4337
                - WLog_Print_dbg_tag.4337
            - BranchSide:      'winpr/libwinpr/utils/image.c:421,10'
              BranchSideFuncs:
                - Stream_GetPosition.4359
                - Stream_CheckAndLogRequiredCapacityEx
                - free
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Read.4302
                - Stream_Seek.4308
                - Stream_Read.4302
                - Stream_Seek.4308
                - malloc
                - WLog_Print_dbg_tag.4337
                - WLog_Print_dbg_tag.4337
                - WLog_Print_dbg_tag.4337
                - WLog_Print_dbg_tag.4337
                - WLog_Print_dbg_tag.4337
        - Branch String:   'winpr/libwinpr/utils/image.c:421,28'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:421,35'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.4337
                - free
            - BranchSide:      'winpr/libwinpr/utils/image.c:423,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.4337
                - free
        - Branch String:   'winpr/libwinpr/utils/image.c:421,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:423,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.4337
                - free
            - BranchSide:      'winpr/libwinpr/utils/image.c:427,2'
              BranchSideFuncs:
                - Stream_GetPosition.4359
                - Stream_CheckAndLogRequiredCapacityEx
                - free
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Read.4302
                - Stream_Seek.4308
                - Stream_Read.4302
                - Stream_Seek.4308
                - malloc
                - WLog_Print_dbg_tag.4337
                - WLog_Print_dbg_tag.4337
                - WLog_Print_dbg_tag.4337
                - WLog_Print_dbg_tag.4337
        - Branch String:   'winpr/libwinpr/utils/image.c:432,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:434,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.4337
                - free
            - BranchSide:      'winpr/libwinpr/utils/image.c:439,7'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredCapacityEx
                - free
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Read.4302
                - Stream_Seek.4308
                - Stream_Read.4302
                - Stream_Seek.4308
                - malloc
                - WLog_Print_dbg_tag.4337
                - WLog_Print_dbg_tag.4337
                - WLog_Print_dbg_tag.4337
        - Branch String:   'winpr/libwinpr/utils/image.c:439,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:440,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - free
                - Stream_Read.4302
                - Stream_Seek.4308
                - Stream_Read.4302
                - Stream_Seek.4308
                - malloc
                - WLog_Print_dbg_tag.4337
                - WLog_Print_dbg_tag.4337
                - WLog_Print_dbg_tag.4337
            - BranchSide:      'winpr/libwinpr/utils/image.c:442,9'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - free
                - Stream_Read.4302
                - Stream_Seek.4308
                - Stream_Read.4302
                - Stream_Seek.4308
                - malloc
                - WLog_Print_dbg_tag.4337
                - WLog_Print_dbg_tag.4337
                - WLog_Print_dbg_tag.4337
        - Branch String:   'winpr/libwinpr/utils/image.c:442,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:444,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.4337
                - free
            - BranchSide:      'winpr/libwinpr/utils/image.c:448,28'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - free
                - Stream_Read.4302
                - Stream_Seek.4308
                - Stream_Read.4302
                - Stream_Seek.4308
                - malloc
                - WLog_Print_dbg_tag.4337
                - WLog_Print_dbg_tag.4337
        - Branch String:   'winpr/libwinpr/utils/image.c:450,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:452,9'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - free
                - Stream_Read.4302
                - Stream_Seek.4308
                - Stream_Read.4302
                - Stream_Seek.4308
                - malloc
                - WLog_Print_dbg_tag.4337
                - WLog_Print_dbg_tag.4337
            - BranchSide:      'winpr/libwinpr/utils/image.c:457,9'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - free
                - Stream_Read.4302
                - Stream_Seek.4308
                - Stream_Read.4302
                - Stream_Seek.4308
                - malloc
                - WLog_Print_dbg_tag.4337
                - WLog_Print_dbg_tag.4337
        - Branch String:   'winpr/libwinpr/utils/image.c:461,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:463,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.4337
                - free
            - BranchSide:      'winpr/libwinpr/utils/image.c:467,27'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - free
                - Stream_Read.4302
                - Stream_Seek.4308
                - Stream_Read.4302
                - Stream_Seek.4308
                - malloc
                - WLog_Print_dbg_tag.4337
        - Branch String:   'winpr/libwinpr/utils/image.c:469,25'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:469,25'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - free
                - Stream_Read.4302
                - Stream_Seek.4308
                - Stream_Read.4302
                - Stream_Seek.4308
                - malloc
                - WLog_Print_dbg_tag.4337
            - BranchSide:      'winpr/libwinpr/utils/image.c:469,25'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/image.c:469,25'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:469,25'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - free
                - Stream_Read.4302
                - Stream_Seek.4308
                - Stream_Read.4302
                - Stream_Seek.4308
                - malloc
                - WLog_Print_dbg_tag.4337
            - BranchSide:      'winpr/libwinpr/utils/image.c:469,25'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - free
                - Stream_Read.4302
                - Stream_Seek.4308
                - Stream_Read.4302
                - Stream_Seek.4308
                - malloc
                - WLog_Print_dbg_tag.4337
        - Branch String:   'winpr/libwinpr/utils/image.c:469,25'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:469,25'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - free
                - Stream_Read.4302
                - Stream_Seek.4308
                - Stream_Read.4302
                - Stream_Seek.4308
                - malloc
                - WLog_Print_dbg_tag.4337
            - BranchSide:      'winpr/libwinpr/utils/image.c:469,25'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - free
                - Stream_Read.4302
                - Stream_Seek.4308
                - Stream_Read.4302
                - Stream_Seek.4308
                - malloc
                - WLog_Print_dbg_tag.4337
        - Branch String:   'winpr/libwinpr/utils/image.c:469,25'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:469,25'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - free
                - Stream_Read.4302
                - Stream_Seek.4308
                - Stream_Read.4302
                - Stream_Seek.4308
                - malloc
                - WLog_Print_dbg_tag.4337
            - BranchSide:      'winpr/libwinpr/utils/image.c:469,25'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/image.c:469,25'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:469,25'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - free
                - Stream_Read.4302
                - Stream_Seek.4308
                - Stream_Read.4302
                - Stream_Seek.4308
                - malloc
                - WLog_Print_dbg_tag.4337
            - BranchSide:      'winpr/libwinpr/utils/image.c:469,25'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/image.c:470,20'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:470,20'
              BranchSideFuncs:
                - winpr_int_assert
                - free
                - Stream_Read.4302
                - Stream_Seek.4308
                - Stream_Read.4302
                - Stream_Seek.4308
                - malloc
                - WLog_Print_dbg_tag.4337
            - BranchSide:      'winpr/libwinpr/utils/image.c:470,20'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/image.c:470,20'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:470,20'
              BranchSideFuncs:
                - winpr_int_assert
                - free
                - Stream_Read.4302
                - Stream_Seek.4308
                - Stream_Read.4302
                - Stream_Seek.4308
                - malloc
                - WLog_Print_dbg_tag.4337
            - BranchSide:      'winpr/libwinpr/utils/image.c:470,20'
              BranchSideFuncs:
                - winpr_int_assert
                - free
                - Stream_Read.4302
                - Stream_Seek.4308
                - Stream_Read.4302
                - Stream_Seek.4308
                - malloc
                - WLog_Print_dbg_tag.4337
        - Branch String:   'winpr/libwinpr/utils/image.c:470,20'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:470,20'
              BranchSideFuncs:
                - free
                - Stream_Read.4302
                - Stream_Seek.4308
                - Stream_Read.4302
                - Stream_Seek.4308
                - malloc
                - WLog_Print_dbg_tag.4337
            - BranchSide:      'winpr/libwinpr/utils/image.c:470,20'
              BranchSideFuncs:
                - winpr_int_assert
                - free
                - Stream_Read.4302
                - Stream_Seek.4308
                - Stream_Read.4302
                - Stream_Seek.4308
                - malloc
                - WLog_Print_dbg_tag.4337
        - Branch String:   'winpr/libwinpr/utils/image.c:470,20'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:470,20'
              BranchSideFuncs:
                - winpr_int_assert
                - free
                - Stream_Read.4302
                - Stream_Seek.4308
                - Stream_Read.4302
                - Stream_Seek.4308
                - malloc
                - WLog_Print_dbg_tag.4337
            - BranchSide:      'winpr/libwinpr/utils/image.c:470,20'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/image.c:470,20'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:470,20'
              BranchSideFuncs:
                - free
                - Stream_Read.4302
                - Stream_Seek.4308
                - Stream_Read.4302
                - Stream_Seek.4308
                - malloc
                - WLog_Print_dbg_tag.4337
            - BranchSide:      'winpr/libwinpr/utils/image.c:470,20'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/image.c:471,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:472,26'
              BranchSideFuncs:
                - free
                - Stream_Read.4302
                - Stream_Seek.4308
                - Stream_Read.4302
                - Stream_Seek.4308
                - malloc
                - WLog_Print_dbg_tag.4337
            - BranchSide:      'winpr/libwinpr/utils/image.c:474,32'
              BranchSideFuncs:
                - free
                - Stream_Read.4302
                - Stream_Seek.4308
                - Stream_Read.4302
                - Stream_Seek.4308
                - malloc
                - WLog_Print_dbg_tag.4337
        - Branch String:   'winpr/libwinpr/utils/image.c:475,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:476,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.4337
                - free
                - Stream_Read.4302
                - Stream_Seek.4308
                - Stream_Read.4302
                - Stream_Seek.4308
                - malloc
            - BranchSide:      'winpr/libwinpr/utils/image.c:478,20'
              BranchSideFuncs:
                - free
                - Stream_Read.4302
                - Stream_Seek.4308
                - Stream_Read.4302
                - Stream_Seek.4308
                - malloc
        - Branch String:   'winpr/libwinpr/utils/image.c:479,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:482,28'
              BranchSideFuncs:
                - free
                - Stream_Read.4302
                - Stream_Seek.4308
                - Stream_Read.4302
                - Stream_Seek.4308
                - malloc
            - BranchSide:      'winpr/libwinpr/utils/image.c:489,2'
              BranchSideFuncs:
                - free
                - Stream_Read.4302
                - Stream_Seek.4308
                - Stream_Read.4302
                - Stream_Seek.4308
                - malloc
        - Branch String:   'winpr/libwinpr/utils/image.c:484,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:485,4'
              BranchSideFuncs:
                - free
            - BranchSide:      'winpr/libwinpr/utils/image.c:486,14'
              BranchSideFuncs:
                - free
                - Stream_Read.4302
                - Stream_Seek.4308
                - Stream_Read.4302
                - Stream_Seek.4308
                - malloc
        - Branch String:   'winpr/libwinpr/utils/image.c:491,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:492,31'
              BranchSideFuncs:
                - malloc
                - free
                - Stream_Read.4302
                - Stream_Seek.4308
                - Stream_Read.4302
                - Stream_Seek.4308
            - BranchSide:      'winpr/libwinpr/utils/image.c:494,7'
              BranchSideFuncs:
                - free
                - Stream_Read.4302
                - Stream_Seek.4308
                - Stream_Read.4302
                - Stream_Seek.4308
        - Branch String:   'winpr/libwinpr/utils/image.c:494,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:495,3'
              BranchSideFuncs:
                - free
                - Stream_Read.4302
                - Stream_Seek.4308
                - Stream_Read.4302
                - Stream_Seek.4308
            - BranchSide:      'winpr/libwinpr/utils/image.c:497,7'
              BranchSideFuncs:
                - free
                - Stream_Read.4302
                - Stream_Seek.4308
                - Stream_Read.4302
                - Stream_Seek.4308
        - Branch String:   'winpr/libwinpr/utils/image.c:497,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:499,20'
              BranchSideFuncs:
                - free
                - Stream_Read.4302
                - Stream_Seek.4308
            - BranchSide:      'winpr/libwinpr/utils/image.c:510,22'
              BranchSideFuncs:
                - free
                - Stream_Read.4302
                - Stream_Seek.4308
        - Branch String:   'winpr/libwinpr/utils/image.c:501,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:503,16'
              BranchSideFuncs:
                - Stream_Read.4302
                - Stream_Seek.4308
                - free
            - BranchSide:      'winpr/libwinpr/utils/image.c:507,2'
              BranchSideFuncs:
                - free
        - Branch String:   'winpr/libwinpr/utils/image.c:512,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:0,0'
              BranchSideFuncs:
                - Stream_Read.4302
                - Stream_Seek.4308
                - free
            - BranchSide:      'winpr/libwinpr/utils/image.c:514,16'
              BranchSideFuncs:
                - Stream_Read.4302
                - Stream_Seek.4308
                - free
        - Branch String:   'winpr/libwinpr/utils/image.c:523,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:525,8'
              BranchSideFuncs:
                - free
            - BranchSide:      'winpr/libwinpr/utils/image.c:529,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/image.c:412,15'
          Dst:             Stream_StaticConstInit
        - Src:             'winpr/libwinpr/utils/image.c:418,7'
          Dst:             readBitmapFileHeader
        - Src:             'winpr/libwinpr/utils/image.c:418,40'
          Dst:             readBitmapInfoHeader
        - Src:             'winpr/libwinpr/utils/image.c:423,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/utils/image.c:429,21'
          Dst:             Stream_GetPosition
        - Src:             'winpr/libwinpr/utils/image.c:434,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/utils/image.c:439,7'
          Dst:             Stream_CheckAndLogRequiredCapacityEx
        - Src:             'winpr/libwinpr/utils/image.c:444,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/utils/image.c:463,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/utils/image.c:469,25'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:469,25'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:470,20'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:470,20'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:476,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/utils/image.c:503,4'
          Dst:             Stream_Read
        - Src:             'winpr/libwinpr/utils/image.c:504,4'
          Dst:             Stream_Seek
        - Src:             'winpr/libwinpr/utils/image.c:514,4'
          Dst:             Stream_Read
        - Src:             'winpr/libwinpr/utils/image.c:515,4'
          Dst:             Stream_Seek
    - functionName:    readBitmapFileHeader
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 79
      functionLinenumberEnd: 110
      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
        - WLog_PrintMessage
        - stream_read_u16_le
        - stream_read_u32_le
        - stream_read_u8
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/image.c:81,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:82,9'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthWLogEx
                - stream_read_u8.4385
                - stream_read_u8.4385
                - stream_read_u32_le.4371
                - stream_read_u16_le.4372
                - stream_read_u16_le.4372
                - stream_read_u32_le.4371
                - Stream_CheckAndLogRequiredCapacityWLogEx
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/image.c:84,7'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthWLogEx
                - stream_read_u8.4385
                - stream_read_u8.4385
                - stream_read_u32_le.4371
                - stream_read_u16_le.4372
                - stream_read_u16_le.4372
                - stream_read_u32_le.4371
                - Stream_CheckAndLogRequiredCapacityWLogEx
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/utils/image.c:84,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:84,13'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthWLogEx
                - stream_read_u8.4385
                - stream_read_u8.4385
                - stream_read_u32_le.4371
                - stream_read_u16_le.4372
                - stream_read_u16_le.4372
                - stream_read_u32_le.4371
                - Stream_CheckAndLogRequiredCapacityWLogEx
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/image.c:86,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/image.c:84,16'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:85,8'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthWLogEx
                - stream_read_u8.4385
                - stream_read_u8.4385
                - stream_read_u32_le.4371
                - stream_read_u16_le.4372
                - stream_read_u16_le.4372
                - stream_read_u32_le.4371
                - Stream_CheckAndLogRequiredCapacityWLogEx
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/image.c:86,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/image.c:84,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:86,3'
              BranchSideFuncs:
                - stream_read_u8.4385
                - stream_read_u8.4385
                - stream_read_u32_le.4371
                - stream_read_u16_le.4372
                - stream_read_u16_le.4372
                - stream_read_u32_le.4371
                - Stream_CheckAndLogRequiredCapacityWLogEx
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/image.c:88,2'
              BranchSideFuncs:
                - stream_read_u8.4385
                - stream_read_u8.4385
                - stream_read_u32_le.4371
                - stream_read_u16_le.4372
                - stream_read_u16_le.4372
                - stream_read_u32_le.4371
                - Stream_CheckAndLogRequiredCapacityWLogEx
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/utils/image.c:95,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:97,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/image.c:102,7'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredCapacityWLogEx
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/utils/image.c:97,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:97,3'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/image.c:99,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/image.c:102,29'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:102,33'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/image.c:104,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/utils/image.c:102,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:104,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/image.c:108,9'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredCapacityWLogEx
        - Branch String:   'winpr/libwinpr/utils/image.c:104,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:104,3'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/image.c:106,3'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/image.c:82,9'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/utils/image.c:85,8'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'winpr/libwinpr/utils/image.c:88,2'
          Dst:             stream_read_u8
        - Src:             'winpr/libwinpr/utils/image.c:89,2'
          Dst:             stream_read_u8
        - Src:             'winpr/libwinpr/utils/image.c:90,2'
          Dst:             stream_read_u32_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_u16_le
        - Src:             'winpr/libwinpr/utils/image.c:93,2'
          Dst:             stream_read_u32_le
        - Src:             'winpr/libwinpr/utils/image.c:97,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/utils/image.c:97,3'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/utils/image.c:104,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/utils/image.c:104,3'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/utils/image.c:108,9'
          Dst:             Stream_CheckAndLogRequiredCapacityWLogEx
    - functionName:    readBitmapInfoHeader
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 132
      functionLinenumberEnd: 197
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - bi
        - poffset
      BBCount:         97
      ICount:          524
      EdgeCount:       112
      CyclomaticComplexity: 17
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_GetPosition
        - Stream_SafeSeekEx
        - WLog_Print_dbg_tag
        - stream_read_i32_le
        - stream_read_u16_le
        - stream_read_u32_le
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/image.c:133,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:133,13'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthEx
                - Stream_GetPosition.4359
                - stream_read_u32_le.4371
                - stream_read_i32_le
                - stream_read_i32_le
                - stream_read_u16_le.4372
                - stream_read_u16_le.4372
                - stream_read_u32_le.4371
                - stream_read_u32_le.4371
                - stream_read_i32_le
                - stream_read_i32_le
                - stream_read_u32_le.4371
                - stream_read_u32_le.4371
                - Stream_GetPosition.4359
                - Stream_SafeSeekEx
                - WLog_Print_dbg_tag.4337
                - WLog_Print_dbg_tag.4337
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - WLog_Print_dbg_tag.4337
                - WLog_Print_dbg_tag.4337
            - BranchSide:      'winpr/libwinpr/utils/image.c:134,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/image.c:133,16'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:133,21'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthEx
                - Stream_GetPosition.4359
                - stream_read_u32_le.4371
                - stream_read_i32_le
                - stream_read_i32_le
                - stream_read_u16_le.4372
                - stream_read_u16_le.4372
                - stream_read_u32_le.4371
                - stream_read_u32_le.4371
                - stream_read_i32_le
                - stream_read_i32_le
                - stream_read_u32_le.4371
                - stream_read_u32_le.4371
                - Stream_GetPosition.4359
                - Stream_SafeSeekEx
                - WLog_Print_dbg_tag.4337
                - WLog_Print_dbg_tag.4337
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - WLog_Print_dbg_tag.4337
                - WLog_Print_dbg_tag.4337
            - BranchSide:      'winpr/libwinpr/utils/image.c:134,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/image.c:133,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:134,3'
              BranchSideFuncs:
                - Stream_GetPosition.4359
                - stream_read_u32_le.4371
                - stream_read_i32_le
                - stream_read_i32_le
                - stream_read_u16_le.4372
                - stream_read_u16_le.4372
                - stream_read_u32_le.4371
                - stream_read_u32_le.4371
                - stream_read_i32_le
                - stream_read_i32_le
                - stream_read_u32_le.4371
                - stream_read_u32_le.4371
                - Stream_GetPosition.4359
                - Stream_SafeSeekEx
                - WLog_Print_dbg_tag.4337
                - WLog_Print_dbg_tag.4337
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - WLog_Print_dbg_tag.4337
                - WLog_Print_dbg_tag.4337
            - BranchSide:      'winpr/libwinpr/utils/image.c:136,42'
              BranchSideFuncs:
                - Stream_GetPosition.4359
                - stream_read_u32_le.4371
                - stream_read_i32_le
                - stream_read_i32_le
                - stream_read_u16_le.4372
                - stream_read_u16_le.4372
                - stream_read_u32_le.4371
                - stream_read_u32_le.4371
                - stream_read_i32_le
                - stream_read_i32_le
                - stream_read_u32_le.4371
                - stream_read_u32_le.4371
                - Stream_GetPosition.4359
                - Stream_SafeSeekEx
                - WLog_Print_dbg_tag.4337
                - WLog_Print_dbg_tag.4337
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - WLog_Print_dbg_tag.4337
                - WLog_Print_dbg_tag.4337
        - Branch String:   'winpr/libwinpr/utils/image.c:149,27'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:149,31'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.4337
            - BranchSide:      'winpr/libwinpr/utils/image.c:151,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.4337
        - Branch String:   'winpr/libwinpr/utils/image.c:149,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:151,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.4337
            - BranchSide:      'winpr/libwinpr/utils/image.c:156,9'
              BranchSideFuncs:
                - Stream_GetPosition.4359
                - Stream_SafeSeekEx
                - WLog_Print_dbg_tag.4337
                - WLog_Print_dbg_tag.4337
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - WLog_Print_dbg_tag.4337
        - Branch String:   'winpr/libwinpr/utils/image.c:157,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:160,8'
              BranchSideFuncs:
                - Stream_GetPosition.4359
                - Stream_SafeSeekEx
                - WLog_Print_dbg_tag.4337
                - WLog_Print_dbg_tag.4337
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/utils/image.c:175,11'
              BranchSideFuncs:
                - Stream_GetPosition.4359
                - Stream_SafeSeekEx
                - WLog_Print_dbg_tag.4337
                - WLog_Print_dbg_tag.4337
            - BranchSide:      'winpr/libwinpr/utils/image.c:178,4'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.4337
        - Branch String:   'winpr/libwinpr/utils/image.c:160,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:162,18'
              BranchSideFuncs:
                - Stream_GetPosition.4359
                - Stream_SafeSeekEx
                - WLog_Print_dbg_tag.4337
                - WLog_Print_dbg_tag.4337
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/utils/image.c:167,8'
              BranchSideFuncs:
                - Stream_GetPosition.4359
                - Stream_SafeSeekEx
                - WLog_Print_dbg_tag.4337
                - WLog_Print_dbg_tag.4337
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/image.c:163,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:164,19'
              BranchSideFuncs:
                - Stream_GetPosition.4359
                - Stream_SafeSeekEx
                - WLog_Print_dbg_tag.4337
                - WLog_Print_dbg_tag.4337
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
            - BranchSide:      'winpr/libwinpr/utils/image.c:165,33'
              BranchSideFuncs:
                - Stream_GetPosition.4359
                - Stream_SafeSeekEx
                - WLog_Print_dbg_tag.4337
                - WLog_Print_dbg_tag.4337
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/image.c:167,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:169,21'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_GetPosition.4359
                - Stream_SafeSeekEx
                - WLog_Print_dbg_tag.4337
                - WLog_Print_dbg_tag.4337
            - BranchSide:      'winpr/libwinpr/utils/image.c:173,4'
              BranchSideFuncs:
                - Stream_GetPosition.4359
                - Stream_SafeSeekEx
                - WLog_Print_dbg_tag.4337
                - WLog_Print_dbg_tag.4337
        - Branch String:   'winpr/libwinpr/utils/image.c:169,21'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:169,21'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_GetPosition.4359
                - Stream_SafeSeekEx
                - WLog_Print_dbg_tag.4337
                - WLog_Print_dbg_tag.4337
            - BranchSide:      'winpr/libwinpr/utils/image.c:169,21'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/image.c:169,21'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:169,21'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_GetPosition.4359
                - Stream_SafeSeekEx
                - WLog_Print_dbg_tag.4337
                - WLog_Print_dbg_tag.4337
            - BranchSide:      'winpr/libwinpr/utils/image.c:169,21'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_GetPosition.4359
                - Stream_SafeSeekEx
                - WLog_Print_dbg_tag.4337
                - WLog_Print_dbg_tag.4337
        - Branch String:   'winpr/libwinpr/utils/image.c:169,21'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:169,21'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - Stream_GetPosition.4359
                - Stream_SafeSeekEx
                - WLog_Print_dbg_tag.4337
                - WLog_Print_dbg_tag.4337
            - BranchSide:      'winpr/libwinpr/utils/image.c:169,21'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_GetPosition.4359
                - Stream_SafeSeekEx
                - WLog_Print_dbg_tag.4337
                - WLog_Print_dbg_tag.4337
        - Branch String:   'winpr/libwinpr/utils/image.c:169,21'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:169,21'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_int_assert
                - Stream_GetPosition.4359
                - Stream_SafeSeekEx
                - WLog_Print_dbg_tag.4337
                - WLog_Print_dbg_tag.4337
            - BranchSide:      'winpr/libwinpr/utils/image.c:169,21'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/image.c:169,21'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:169,21'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - Stream_GetPosition.4359
                - Stream_SafeSeekEx
                - WLog_Print_dbg_tag.4337
                - WLog_Print_dbg_tag.4337
            - BranchSide:      'winpr/libwinpr/utils/image.c:169,21'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/image.c:171,23'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:171,23'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_GetPosition.4359
                - Stream_SafeSeekEx
                - WLog_Print_dbg_tag.4337
                - WLog_Print_dbg_tag.4337
            - BranchSide:      'winpr/libwinpr/utils/image.c:171,23'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/image.c:171,23'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:171,23'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_GetPosition.4359
                - Stream_SafeSeekEx
                - WLog_Print_dbg_tag.4337
                - WLog_Print_dbg_tag.4337
            - BranchSide:      'winpr/libwinpr/utils/image.c:171,23'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_GetPosition.4359
                - Stream_SafeSeekEx
                - WLog_Print_dbg_tag.4337
                - WLog_Print_dbg_tag.4337
        - Branch String:   'winpr/libwinpr/utils/image.c:171,23'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:171,23'
              BranchSideFuncs:
                - Stream_GetPosition.4359
                - Stream_SafeSeekEx
                - WLog_Print_dbg_tag.4337
                - WLog_Print_dbg_tag.4337
            - BranchSide:      'winpr/libwinpr/utils/image.c:171,23'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_GetPosition.4359
                - Stream_SafeSeekEx
                - WLog_Print_dbg_tag.4337
                - WLog_Print_dbg_tag.4337
        - Branch String:   'winpr/libwinpr/utils/image.c:171,23'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:171,23'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_GetPosition.4359
                - Stream_SafeSeekEx
                - WLog_Print_dbg_tag.4337
                - WLog_Print_dbg_tag.4337
            - BranchSide:      'winpr/libwinpr/utils/image.c:171,23'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/image.c:171,23'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:171,23'
              BranchSideFuncs:
                - Stream_GetPosition.4359
                - Stream_SafeSeekEx
                - WLog_Print_dbg_tag.4337
                - WLog_Print_dbg_tag.4337
            - BranchSide:      'winpr/libwinpr/utils/image.c:171,23'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/image.c:182,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:184,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.4337
            - BranchSide:      'winpr/libwinpr/utils/image.c:188,40'
              BranchSideFuncs:
                - Stream_GetPosition.4359
                - Stream_SafeSeekEx
                - WLog_Print_dbg_tag.4337
        - Branch String:   'winpr/libwinpr/utils/image.c:189,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:191,3'
              BranchSideFuncs:
                - WLog_Print_dbg_tag.4337
            - BranchSide:      'winpr/libwinpr/utils/image.c:195,13'
              BranchSideFuncs:
                - Stream_SafeSeekEx
      Callsites:
        - Src:             'winpr/libwinpr/utils/image.c:133,21'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'winpr/libwinpr/utils/image.c:136,23'
          Dst:             Stream_GetPosition
        - Src:             'winpr/libwinpr/utils/image.c:137,2'
          Dst:             stream_read_u32_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_i32_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_u16_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_u32_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_i32_le
        - Src:             'winpr/libwinpr/utils/image.c:146,2'
          Dst:             stream_read_u32_le
        - Src:             'winpr/libwinpr/utils/image.c:147,2'
          Dst:             stream_read_u32_le
        - Src:             'winpr/libwinpr/utils/image.c:151,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/utils/image.c:169,21'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:169,21'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:171,23'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:171,23'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:178,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/utils/image.c:184,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/utils/image.c:188,21'
          Dst:             Stream_GetPosition
        - Src:             'winpr/libwinpr/utils/image.c:191,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/utils/image.c:196,9'
          Dst:             Stream_SafeSeekEx
    - functionName:    Stream_GetPosition
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1304
      functionLinenumberEnd: 1307
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - _s
      BBCount:         15
      ICount:          55
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:1305,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:1305,3'
              BranchSideFuncs:
                - winpr_int_assert
            - BranchSide:      'winpr/include/winpr/stream.h:1305,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:1306,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:1306,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/stream.h:1306,3'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1305,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1306,3'
          Dst:             winpr_int_assert
    - functionName:    stream_read_u32_le
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 211
      functionLinenumberEnd: 219
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - _s
        - seek
      BBCount:         18
      ICount:          68
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_GetRemainingLength
        - Stream_Seek
        - winpr_Data_Get_UINT32
        - winpr_int_assert
      functionUses:    7
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:213,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:213,3'
              BranchSideFuncs:
                - Stream_GetRemainingLength
                - winpr_int_assert
                - winpr_Data_Get_UINT32.4318
                - Stream_Seek.4308
            - BranchSide:      'winpr/include/winpr/stream.h:213,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:214,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:214,3'
              BranchSideFuncs:
                - winpr_Data_Get_UINT32.4318
                - Stream_Seek.4308
            - BranchSide:      'winpr/include/winpr/stream.h:214,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:217,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:217,7'
              BranchSideFuncs:
                - Stream_Seek.4308
            - BranchSide:      'winpr/include/winpr/stream.h:218,16'
              BranchSideFuncs:
                - Stream_Seek.4308
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:213,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:214,3'
          Dst:             Stream_GetRemainingLength
        - Src:             'winpr/include/winpr/stream.h:214,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:216,20'
          Dst:             winpr_Data_Get_UINT32
        - Src:             'winpr/include/winpr/stream.h:218,4'
          Dst:             Stream_Seek
    - functionName:    stream_read_i32_le
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 235
      functionLinenumberEnd: 243
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - _s
        - seek
      BBCount:         18
      ICount:          68
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_GetRemainingLength
        - Stream_Seek
        - winpr_Data_Get_INT32
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:237,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:237,3'
              BranchSideFuncs:
                - Stream_GetRemainingLength
                - winpr_int_assert
                - winpr_Data_Get_INT32
                - Stream_Seek.4308
            - BranchSide:      'winpr/include/winpr/stream.h:237,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:238,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:238,3'
              BranchSideFuncs:
                - winpr_Data_Get_INT32
                - Stream_Seek.4308
            - BranchSide:      'winpr/include/winpr/stream.h:238,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:241,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:241,7'
              BranchSideFuncs:
                - Stream_Seek.4308
            - BranchSide:      'winpr/include/winpr/stream.h:242,16'
              BranchSideFuncs:
                - Stream_Seek.4308
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:237,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:238,3'
          Dst:             Stream_GetRemainingLength
        - Src:             'winpr/include/winpr/stream.h:238,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:240,19'
          Dst:             winpr_Data_Get_INT32
        - Src:             'winpr/include/winpr/stream.h:242,4'
          Dst:             Stream_Seek
    - functionName:    stream_read_u16_le
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 163
      functionLinenumberEnd: 171
      functionDepth:   0
      returnType:      short
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - _s
        - seek
      BBCount:         18
      ICount:          68
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_GetRemainingLength
        - Stream_Seek
        - winpr_Data_Get_UINT16
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:165,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:165,3'
              BranchSideFuncs:
                - Stream_GetRemainingLength
                - winpr_int_assert
                - winpr_Data_Get_UINT16.4324
                - Stream_Seek.4308
            - BranchSide:      'winpr/include/winpr/stream.h:165,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:166,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:166,3'
              BranchSideFuncs:
                - winpr_Data_Get_UINT16.4324
                - Stream_Seek.4308
            - BranchSide:      'winpr/include/winpr/stream.h:166,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:169,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:169,7'
              BranchSideFuncs:
                - Stream_Seek.4308
            - BranchSide:      'winpr/include/winpr/stream.h:170,16'
              BranchSideFuncs:
                - Stream_Seek.4308
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:165,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:166,3'
          Dst:             Stream_GetRemainingLength
        - Src:             'winpr/include/winpr/stream.h:166,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:168,20'
          Dst:             winpr_Data_Get_UINT16
        - Src:             'winpr/include/winpr/stream.h:170,4'
          Dst:             Stream_Seek
    - functionName:    stream_read_u8
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 144
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      char
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - _s
        - seek
      BBCount:         18
      ICount:          65
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_GetRemainingLength
        - Stream_Seek
        - winpr_Data_Get_UINT8
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:145,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:145,3'
              BranchSideFuncs:
                - Stream_GetRemainingLength
                - winpr_int_assert
                - winpr_Data_Get_UINT8.4326
                - Stream_Seek.4308
            - BranchSide:      'winpr/include/winpr/stream.h:145,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:146,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:146,3'
              BranchSideFuncs:
                - winpr_Data_Get_UINT8.4326
                - Stream_Seek.4308
            - BranchSide:      'winpr/include/winpr/stream.h:146,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:149,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:149,7'
              BranchSideFuncs:
                - Stream_Seek.4308
            - BranchSide:      'winpr/include/winpr/stream.h:150,16'
              BranchSideFuncs:
                - Stream_Seek.4308
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:145,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:146,3'
          Dst:             Stream_GetRemainingLength
        - Src:             'winpr/include/winpr/stream.h:146,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:148,19'
          Dst:             winpr_Data_Get_UINT8
        - Src:             'winpr/include/winpr/stream.h:150,4'
          Dst:             Stream_Seek
    - functionName:    winpr_image_read_buffer
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 565
      functionLinenumberEnd: 621
      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:569,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:570,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/image.c:572,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:574,22'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:574,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:579,12'
              BranchSideFuncs:
                - winpr_convert_from_png
                - winpr_convert_from_jpeg
                - winpr_convert_from_webp
        - Branch String:   'winpr/libwinpr/utils/image.c:574,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:576,3'
              BranchSideFuncs:
                - winpr_image_bitmap_read_buffer
            - BranchSide:      'winpr/libwinpr/utils/image.c:579,12'
              BranchSideFuncs:
                - winpr_convert_from_png
                - winpr_convert_from_jpeg
                - winpr_convert_from_webp
        - Branch String:   'winpr/libwinpr/utils/image.c:579,27'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:579,31'
              BranchSideFuncs:
                - winpr_convert_from_png
                - winpr_convert_from_jpeg
                - winpr_convert_from_webp
            - BranchSide:      'winpr/libwinpr/utils/image.c:592,12'
              BranchSideFuncs:
                - winpr_convert_from_png
                - winpr_convert_from_jpeg
        - Branch String:   'winpr/libwinpr/utils/image.c:579,46'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:579,50'
              BranchSideFuncs:
                - winpr_convert_from_png
                - winpr_convert_from_jpeg
                - winpr_convert_from_webp
            - BranchSide:      'winpr/libwinpr/utils/image.c:592,12'
              BranchSideFuncs:
                - winpr_convert_from_png
                - winpr_convert_from_jpeg
        - Branch String:   'winpr/libwinpr/utils/image.c:579,65'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:579,69'
              BranchSideFuncs:
                - winpr_convert_from_png
                - winpr_convert_from_jpeg
                - winpr_convert_from_webp
            - BranchSide:      'winpr/libwinpr/utils/image.c:592,12'
              BranchSideFuncs:
                - winpr_convert_from_png
                - winpr_convert_from_jpeg
        - Branch String:   'winpr/libwinpr/utils/image.c:579,84'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:580,12'
              BranchSideFuncs:
                - winpr_convert_from_png
                - winpr_convert_from_jpeg
                - winpr_convert_from_webp
            - BranchSide:      'winpr/libwinpr/utils/image.c:592,12'
              BranchSideFuncs:
                - winpr_convert_from_png
                - winpr_convert_from_jpeg
        - Branch String:   'winpr/libwinpr/utils/image.c:580,27'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:580,31'
              BranchSideFuncs:
                - winpr_convert_from_png
                - winpr_convert_from_jpeg
                - winpr_convert_from_webp
            - BranchSide:      'winpr/libwinpr/utils/image.c:592,12'
              BranchSideFuncs:
                - winpr_convert_from_png
                - winpr_convert_from_jpeg
        - Branch String:   'winpr/libwinpr/utils/image.c:580,46'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:580,50'
              BranchSideFuncs:
                - winpr_convert_from_png
                - winpr_convert_from_jpeg
                - winpr_convert_from_webp
            - BranchSide:      'winpr/libwinpr/utils/image.c:592,12'
              BranchSideFuncs:
                - winpr_convert_from_png
                - winpr_convert_from_jpeg
        - Branch String:   'winpr/libwinpr/utils/image.c:580,66'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:580,70'
              BranchSideFuncs:
                - winpr_convert_from_png
                - winpr_convert_from_jpeg
                - winpr_convert_from_webp
            - BranchSide:      'winpr/libwinpr/utils/image.c:592,12'
              BranchSideFuncs:
                - winpr_convert_from_png
                - winpr_convert_from_jpeg
        - Branch String:   'winpr/libwinpr/utils/image.c:579,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:582,3'
              BranchSideFuncs:
                - winpr_convert_from_webp
            - BranchSide:      'winpr/libwinpr/utils/image.c:592,12'
              BranchSideFuncs:
                - winpr_convert_from_png
                - winpr_convert_from_jpeg
        - Branch String:   'winpr/libwinpr/utils/image.c:585,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:587,28'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/image.c:591,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/image.c:592,28'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:592,32'
              BranchSideFuncs:
                - winpr_convert_from_png
                - winpr_convert_from_jpeg
            - BranchSide:      'winpr/libwinpr/utils/image.c:606,12'
              BranchSideFuncs:
                - winpr_convert_from_png
        - Branch String:   'winpr/libwinpr/utils/image.c:592,48'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:592,52'
              BranchSideFuncs:
                - winpr_convert_from_png
                - winpr_convert_from_jpeg
            - BranchSide:      'winpr/libwinpr/utils/image.c:606,12'
              BranchSideFuncs:
                - winpr_convert_from_png
        - Branch String:   'winpr/libwinpr/utils/image.c:592,68'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:592,72'
              BranchSideFuncs:
                - winpr_convert_from_png
                - winpr_convert_from_jpeg
            - BranchSide:      'winpr/libwinpr/utils/image.c:606,12'
              BranchSideFuncs:
                - winpr_convert_from_png
        - Branch String:   'winpr/libwinpr/utils/image.c:592,88'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:593,12'
              BranchSideFuncs:
                - winpr_convert_from_png
                - winpr_convert_from_jpeg
            - BranchSide:      'winpr/libwinpr/utils/image.c:606,12'
              BranchSideFuncs:
                - winpr_convert_from_png
        - Branch String:   'winpr/libwinpr/utils/image.c:593,28'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:593,32'
              BranchSideFuncs:
                - winpr_convert_from_png
                - winpr_convert_from_jpeg
            - BranchSide:      'winpr/libwinpr/utils/image.c:606,12'
              BranchSideFuncs:
                - winpr_convert_from_png
        - Branch String:   'winpr/libwinpr/utils/image.c:593,48'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:593,52'
              BranchSideFuncs:
                - winpr_convert_from_png
                - winpr_convert_from_jpeg
            - BranchSide:      'winpr/libwinpr/utils/image.c:606,12'
              BranchSideFuncs:
                - winpr_convert_from_png
        - Branch String:   'winpr/libwinpr/utils/image.c:593,68'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:593,72'
              BranchSideFuncs:
                - winpr_convert_from_png
                - winpr_convert_from_jpeg
            - BranchSide:      'winpr/libwinpr/utils/image.c:606,12'
              BranchSideFuncs:
                - winpr_convert_from_png
        - Branch String:   'winpr/libwinpr/utils/image.c:593,88'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:594,12'
              BranchSideFuncs:
                - winpr_convert_from_png
                - winpr_convert_from_jpeg
            - BranchSide:      'winpr/libwinpr/utils/image.c:606,12'
              BranchSideFuncs:
                - winpr_convert_from_png
        - Branch String:   'winpr/libwinpr/utils/image.c:592,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:596,3'
              BranchSideFuncs:
                - winpr_convert_from_jpeg
            - BranchSide:      'winpr/libwinpr/utils/image.c:606,12'
              BranchSideFuncs:
                - winpr_convert_from_png
        - Branch String:   'winpr/libwinpr/utils/image.c:599,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:601,28'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/image.c:605,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/image.c:612,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:614,28'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/image.c:618,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/image.c:577,12'
          Dst:             winpr_image_bitmap_read_buffer
        - Src:             'winpr/libwinpr/utils/image.c:583,22'
          Dst:             winpr_convert_from_webp
        - Src:             'winpr/libwinpr/utils/image.c:597,22'
          Dst:             winpr_convert_from_jpeg
        - Src:             'winpr/libwinpr/utils/image.c:610,22'
          Dst:             winpr_convert_from_png
    - functionName:    _ftelli64
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wtypes.h'
      linkageType:     InternalLinkage
      functionLinenumber: 494
      functionLinenumberEnd: 495
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - fp
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ftello64
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/wtypes.h:495,9'
          Dst:             ftello64
    - functionName:    winpr_image_read
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 533
      functionLinenumberEnd: 562
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - image
        - filename
      BBCount:         15
      ICount:          100
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - WLog_Print_dbg_tag
        - _ftelli64
        - fclose
        - fread
        - fseek
        - winpr_fopen
        - winpr_image_read_buffer
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/image.c:537,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:539,3'
              BranchSideFuncs:
                - fseek
                - _ftelli64.4390
                - fseek
                - fclose
                - malloc
                - free
                - fread
                - winpr_image_read_buffer
            - BranchSide:      'winpr/libwinpr/utils/image.c:543,14'
              BranchSideFuncs:
                - fseek
                - _ftelli64.4390
                - fseek
                - fclose
                - malloc
                - free
                - fread
                - winpr_image_read_buffer
        - Branch String:   'winpr/libwinpr/utils/image.c:547,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:549,33'
              BranchSideFuncs:
                - malloc
                - free
                - fclose
                - fread
                - winpr_image_read_buffer
            - BranchSide:      'winpr/libwinpr/utils/image.c:560,15'
              BranchSideFuncs:
                - fclose
        - Branch String:   'winpr/libwinpr/utils/image.c:550,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:552,21'
              BranchSideFuncs:
                - fread
                - free
                - fclose
                - winpr_image_read_buffer
            - BranchSide:      'winpr/libwinpr/utils/image.c:558,8'
              BranchSideFuncs:
                - free
                - fclose
        - Branch String:   'winpr/libwinpr/utils/image.c:553,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:555,38'
              BranchSideFuncs:
                - winpr_image_read_buffer
                - free
                - fclose
            - BranchSide:      'winpr/libwinpr/utils/image.c:557,3'
              BranchSideFuncs:
                - free
                - fclose
      Callsites:
        - Src:             'winpr/libwinpr/utils/image.c:536,13'
          Dst:             winpr_fopen
        - Src:             'winpr/libwinpr/utils/image.c:539,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/utils/image.c:543,8'
          Dst:             fseek
        - Src:             'winpr/libwinpr/utils/image.c:544,14'
          Dst:             _ftelli64
        - Src:             'winpr/libwinpr/utils/image.c:545,8'
          Dst:             fseek
        - Src:             'winpr/libwinpr/utils/image.c:552,15'
          Dst:             fread
        - Src:             'winpr/libwinpr/utils/image.c:555,14'
          Dst:             winpr_image_read_buffer
        - Src:             'winpr/libwinpr/utils/image.c:560,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: 370
      functionLinenumberEnd: 385
      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:372,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:373,3'
              BranchSideFuncs:
                - winpr_fopen
                - free
                - fwrite
                - fclose
            - BranchSide:      'winpr/libwinpr/utils/image.c:375,25'
              BranchSideFuncs:
                - winpr_fopen
                - free
                - fwrite
                - fclose
        - Branch String:   'winpr/libwinpr/utils/image.c:376,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:377,3'
              BranchSideFuncs:
                - fwrite
                - fclose
                - free
            - BranchSide:      'winpr/libwinpr/utils/image.c:379,20'
              BranchSideFuncs:
                - fwrite
                - fclose
                - free
      Callsites:
        - Src:             'winpr/libwinpr/utils/image.c:375,13'
          Dst:             winpr_fopen
        - Src:             'winpr/libwinpr/utils/image.c:379,13'
          Dst:             fwrite
        - Src:             'winpr/libwinpr/utils/image.c:380,8'
          Dst:             fclose
    - functionName:    winpr_image_write_buffer
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1325
      functionLinenumberEnd: 1369
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - image
        - format
        - psize
      BBCount:         15
      ICount:          229
      EdgeCount:       29
      CyclomaticComplexity: 16
      functionsReached:
        - winpr_bitmap_write_buffer
        - winpr_convert_to_jpeg
        - winpr_convert_to_png
        - winpr_convert_to_webp
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/image.c:1326,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:1326,2'
              BranchSideFuncs:
                - winpr_convert_to_png
                - winpr_convert_to_jpeg
                - winpr_convert_to_webp
                - winpr_bitmap_write_buffer
            - BranchSide:      'winpr/libwinpr/utils/image.c:1326,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/image.c:1327,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:1331,11'
              BranchSideFuncs:
                - winpr_bitmap_write_buffer
            - BranchSide:      'winpr/libwinpr/utils/image.c:1340,11'
              BranchSideFuncs:
                - winpr_convert_to_webp
            - BranchSide:      'winpr/libwinpr/utils/image.c:1349,11'
              BranchSideFuncs:
                - winpr_convert_to_jpeg
            - BranchSide:      'winpr/libwinpr/utils/image.c:1358,11'
              BranchSideFuncs:
                - winpr_convert_to_png
            - BranchSide:      'winpr/libwinpr/utils/image.c:1366,5'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/image.c:1326,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:1333,17'
          Dst:             winpr_bitmap_write_buffer
        - Src:             'winpr/libwinpr/utils/image.c:1342,17'
          Dst:             winpr_convert_to_webp
        - Src:             'winpr/libwinpr/utils/image.c:1351,17'
          Dst:             winpr_convert_to_jpeg
        - Src:             'winpr/libwinpr/utils/image.c:1360,17'
          Dst:             winpr_convert_to_png
    - functionName:    winpr_bitmap_write_buffer
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 278
      functionLinenumberEnd: 321
      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:         34
      ICount:          234
      EdgeCount:       43
      CyclomaticComplexity: 11
      functionsReached:
        - Stream_Buffer
        - Stream_EnsureRemainingCapacity
        - Stream_Free
        - Stream_GetPosition
        - Stream_New
        - Stream_Write
        - Stream_Zero
        - winpr_bitmap_construct_header
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/image.c:279,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:279,2'
              BranchSideFuncs:
                - Stream_New
                - winpr_bitmap_construct_header
                - Stream_Free
                - free
                - Stream_EnsureRemainingCapacity
                - Stream_Write.4312
                - Stream_EnsureRemainingCapacity
                - Stream_Buffer.4395
                - Stream_GetPosition.4359
                - Stream_Write.4312
                - Stream_Zero.4394
            - BranchSide:      'winpr/libwinpr/utils/image.c:279,2'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_New
                - winpr_bitmap_construct_header
                - Stream_Free
                - free
                - Stream_EnsureRemainingCapacity
                - Stream_Write.4312
                - Stream_EnsureRemainingCapacity
                - Stream_Buffer.4395
                - Stream_GetPosition.4359
                - Stream_Write.4312
                - Stream_Zero.4394
        - Branch String:   'winpr/libwinpr/utils/image.c:279,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:279,2'
              BranchSideFuncs:
                - Stream_New
                - winpr_bitmap_construct_header
                - Stream_Free
                - free
                - Stream_EnsureRemainingCapacity
                - Stream_Write.4312
                - Stream_EnsureRemainingCapacity
                - Stream_Buffer.4395
                - Stream_GetPosition.4359
                - Stream_Write.4312
                - Stream_Zero.4394
            - BranchSide:      'winpr/libwinpr/utils/image.c:279,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/image.c:283,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:284,22'
              BranchSideFuncs:
                - Stream_New
                - winpr_bitmap_construct_header
                - Stream_Free
                - free
                - Stream_EnsureRemainingCapacity
                - Stream_Write.4312
                - Stream_EnsureRemainingCapacity
                - Stream_Buffer.4395
                - Stream_GetPosition.4359
                - Stream_Write.4312
                - Stream_Zero.4394
            - BranchSide:      'winpr/libwinpr/utils/image.c:286,6'
              BranchSideFuncs:
                - Stream_New
                - winpr_bitmap_construct_header
                - Stream_Free
                - free
                - Stream_EnsureRemainingCapacity
                - Stream_Write.4312
                - Stream_EnsureRemainingCapacity
                - Stream_Buffer.4395
                - Stream_GetPosition.4359
                - Stream_Write.4312
                - Stream_Zero.4394
        - Branch String:   'winpr/libwinpr/utils/image.c:286,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:287,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/image.c:289,15'
              BranchSideFuncs:
                - Stream_New
                - winpr_bitmap_construct_header
                - Stream_Free
                - free
                - Stream_EnsureRemainingCapacity
                - Stream_Write.4312
                - Stream_EnsureRemainingCapacity
                - Stream_Buffer.4395
                - Stream_GetPosition.4359
                - Stream_Write.4312
                - Stream_Zero.4394
        - Branch String:   'winpr/libwinpr/utils/image.c:291,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:292,20'
              BranchSideFuncs:
                - winpr_bitmap_construct_header
                - Stream_Free
                - free
                - Stream_EnsureRemainingCapacity
                - Stream_Write.4312
                - Stream_EnsureRemainingCapacity
                - Stream_Buffer.4395
                - Stream_GetPosition.4359
                - Stream_Write.4312
                - Stream_Zero.4394
            - BranchSide:      'winpr/libwinpr/utils/image.c:294,51'
              BranchSideFuncs:
                - winpr_bitmap_construct_header
                - Stream_Free
                - free
                - Stream_EnsureRemainingCapacity
                - Stream_Write.4312
                - Stream_EnsureRemainingCapacity
                - Stream_Buffer.4395
                - Stream_GetPosition.4359
                - Stream_Write.4312
                - Stream_Zero.4394
        - Branch String:   'winpr/libwinpr/utils/image.c:295,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:296,3'
              BranchSideFuncs:
                - Stream_EnsureRemainingCapacity
                - Stream_Free
                - free
                - Stream_Write.4312
                - Stream_EnsureRemainingCapacity
                - Stream_Buffer.4395
                - Stream_GetPosition.4359
                - Stream_Write.4312
                - Stream_Zero.4394
            - BranchSide:      'winpr/libwinpr/utils/image.c:297,38'
              BranchSideFuncs:
                - Stream_EnsureRemainingCapacity
                - Stream_Free
                - free
                - Stream_Write.4312
                - Stream_EnsureRemainingCapacity
                - Stream_Buffer.4395
                - Stream_GetPosition.4359
                - Stream_Write.4312
                - Stream_Zero.4394
        - Branch String:   'winpr/libwinpr/utils/image.c:297,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:298,3'
              BranchSideFuncs:
                - Stream_Write.4312
                - Stream_EnsureRemainingCapacity
                - Stream_Free
                - free
                - Stream_Buffer.4395
                - Stream_GetPosition.4359
                - Stream_Write.4312
                - Stream_Zero.4394
            - BranchSide:      'winpr/libwinpr/utils/image.c:299,15'
              BranchSideFuncs:
                - Stream_Write.4312
                - Stream_EnsureRemainingCapacity
                - Stream_Free
                - free
                - Stream_Buffer.4395
                - Stream_GetPosition.4359
                - Stream_Write.4312
                - Stream_Zero.4394
        - Branch String:   'winpr/libwinpr/utils/image.c:301,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:302,3'
              BranchSideFuncs:
                - Stream_Buffer.4395
                - Stream_GetPosition.4359
                - Stream_Free
                - free
                - Stream_Write.4312
                - Stream_Zero.4394
            - BranchSide:      'winpr/libwinpr/utils/image.c:304,14'
              BranchSideFuncs:
                - Stream_Buffer.4395
                - Stream_GetPosition.4359
                - Stream_Free
                - free
                - Stream_Write.4312
                - Stream_Zero.4394
        - Branch String:   'winpr/libwinpr/utils/image.c:304,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:306,23'
              BranchSideFuncs:
                - Stream_Write.4312
                - Stream_Zero.4394
                - Stream_Buffer.4395
                - Stream_GetPosition.4359
                - Stream_Free
                - free
            - BranchSide:      'winpr/libwinpr/utils/image.c:312,25'
              BranchSideFuncs:
                - Stream_Buffer.4395
                - Stream_GetPosition.4359
                - Stream_Free
                - free
        - Branch String:   'winpr/libwinpr/utils/image.c:314,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:315,3'
              BranchSideFuncs:
                - Stream_Free
                - free
            - BranchSide:      'winpr/libwinpr/utils/image.c:316,19'
              BranchSideFuncs:
                - Stream_Free
                - free
      Callsites:
        - Src:             'winpr/libwinpr/utils/image.c:279,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:289,15'
          Dst:             Stream_New
        - Src:             'winpr/libwinpr/utils/image.c:294,21'
          Dst:             winpr_bitmap_construct_header
        - Src:             'winpr/libwinpr/utils/image.c:297,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'winpr/libwinpr/utils/image.c:299,2'
          Dst:             Stream_Write
        - Src:             'winpr/libwinpr/utils/image.c:301,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'winpr/libwinpr/utils/image.c:308,3'
          Dst:             Stream_Write
        - Src:             'winpr/libwinpr/utils/image.c:309,3'
          Dst:             Stream_Zero
        - Src:             'winpr/libwinpr/utils/image.c:312,11'
          Dst:             Stream_Buffer
        - Src:             'winpr/libwinpr/utils/image.c:313,21'
          Dst:             Stream_GetPosition
        - Src:             'winpr/libwinpr/utils/image.c:318,2'
          Dst:             Stream_Free
    - functionName:    winpr_bitmap_construct_header
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 200
      functionLinenumberEnd: 268
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - size_t
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - width
        - height
        - bpp
      BBCount:         35
      ICount:          275
      EdgeCount:       45
      CyclomaticComplexity: 12
      functionsReached:
        - Stream_Buffer
        - Stream_EnsureRemainingCapacity
        - Stream_Free
        - Stream_New
        - Stream_Zero
        - writeBitmapFileHeader
        - writeBitmapInfoHeader
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/image.c:206,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:207,18'
              BranchSideFuncs:
                - Stream_New
                - writeBitmapFileHeader
                - Stream_Free
                - writeBitmapInfoHeader
                - Stream_EnsureRemainingCapacity
                - Stream_Zero.4394
                - Stream_Buffer.4395
            - BranchSide:      'winpr/libwinpr/utils/image.c:209,19'
              BranchSideFuncs:
                - Stream_New
                - writeBitmapFileHeader
                - Stream_Free
                - writeBitmapInfoHeader
                - Stream_EnsureRemainingCapacity
                - Stream_Zero.4394
                - Stream_Buffer.4395
        - Branch String:   'winpr/libwinpr/utils/image.c:210,26'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:210,30'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/image.c:211,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/image.c:210,50'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:210,54'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/image.c:211,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/image.c:210,72'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:210,76'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/image.c:211,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/image.c:210,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:211,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/image.c:213,15'
              BranchSideFuncs:
                - Stream_New
                - writeBitmapFileHeader
                - Stream_Free
                - writeBitmapInfoHeader
                - Stream_EnsureRemainingCapacity
                - Stream_Zero.4394
                - Stream_Buffer.4395
        - Branch String:   'winpr/libwinpr/utils/image.c:214,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:215,3'
              BranchSideFuncs:
                - writeBitmapFileHeader
                - Stream_Free
                - writeBitmapInfoHeader
                - Stream_EnsureRemainingCapacity
                - Stream_Zero.4394
                - Stream_Buffer.4395
            - BranchSide:      'winpr/libwinpr/utils/image.c:217,5'
              BranchSideFuncs:
                - writeBitmapFileHeader
                - Stream_Free
                - writeBitmapInfoHeader
                - Stream_EnsureRemainingCapacity
                - Stream_Zero.4394
                - Stream_Buffer.4395
        - Branch String:   'winpr/libwinpr/utils/image.c:236,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:239,11'
              BranchSideFuncs:
                - writeBitmapFileHeader
                - Stream_Free
                - writeBitmapInfoHeader
                - Stream_EnsureRemainingCapacity
                - Stream_Zero.4394
                - Stream_Buffer.4395
            - BranchSide:      'winpr/libwinpr/utils/image.c:248,11'
              BranchSideFuncs:
                - writeBitmapFileHeader
                - Stream_Free
                - writeBitmapInfoHeader
                - Stream_EnsureRemainingCapacity
                - Stream_Zero.4394
                - Stream_Buffer.4395
            - BranchSide:      'winpr/libwinpr/utils/image.c:251,4'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/image.c:239,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:241,21'
              BranchSideFuncs:
                - writeBitmapFileHeader
                - Stream_Free
                - writeBitmapInfoHeader
                - Stream_EnsureRemainingCapacity
                - Stream_Zero.4394
                - Stream_Buffer.4395
            - BranchSide:      'winpr/libwinpr/utils/image.c:246,4'
              BranchSideFuncs:
                - writeBitmapFileHeader
                - Stream_Free
                - writeBitmapInfoHeader
                - Stream_EnsureRemainingCapacity
                - Stream_Zero.4394
                - Stream_Buffer.4395
        - Branch String:   'winpr/libwinpr/utils/image.c:242,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:243,22'
              BranchSideFuncs:
                - writeBitmapFileHeader
                - Stream_Free
                - writeBitmapInfoHeader
                - Stream_EnsureRemainingCapacity
                - Stream_Zero.4394
                - Stream_Buffer.4395
            - BranchSide:      'winpr/libwinpr/utils/image.c:244,33'
              BranchSideFuncs:
                - writeBitmapFileHeader
                - Stream_Free
                - writeBitmapInfoHeader
                - Stream_EnsureRemainingCapacity
                - Stream_Zero.4394
                - Stream_Buffer.4395
        - Branch String:   'winpr/libwinpr/utils/image.c:254,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:255,3'
              BranchSideFuncs:
                - writeBitmapInfoHeader
                - Stream_Free
                - Stream_EnsureRemainingCapacity
                - Stream_Zero.4394
                - Stream_Buffer.4395
            - BranchSide:      'winpr/libwinpr/utils/image.c:257,29'
              BranchSideFuncs:
                - writeBitmapInfoHeader
                - Stream_Free
                - Stream_EnsureRemainingCapacity
                - Stream_Zero.4394
                - Stream_Buffer.4395
        - Branch String:   'winpr/libwinpr/utils/image.c:257,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:258,3'
              BranchSideFuncs:
                - Stream_EnsureRemainingCapacity
                - Stream_Free
                - Stream_Zero.4394
                - Stream_Buffer.4395
            - BranchSide:      'winpr/libwinpr/utils/image.c:260,38'
              BranchSideFuncs:
                - Stream_EnsureRemainingCapacity
                - Stream_Free
                - Stream_Zero.4394
                - Stream_Buffer.4395
        - Branch String:   'winpr/libwinpr/utils/image.c:260,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:261,3'
              BranchSideFuncs:
                - Stream_Zero.4394
                - Stream_Buffer.4395
                - Stream_Free
            - BranchSide:      'winpr/libwinpr/utils/image.c:263,14'
              BranchSideFuncs:
                - Stream_Zero.4394
                - Stream_Buffer.4395
                - Stream_Free
      Callsites:
        - Src:             'winpr/libwinpr/utils/image.c:213,15'
          Dst:             Stream_New
        - Src:             'winpr/libwinpr/utils/image.c:254,7'
          Dst:             writeBitmapFileHeader
        - Src:             'winpr/libwinpr/utils/image.c:257,7'
          Dst:             writeBitmapInfoHeader
        - Src:             'winpr/libwinpr/utils/image.c:260,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'winpr/libwinpr/utils/image.c:263,2'
          Dst:             Stream_Zero
        - Src:             'winpr/libwinpr/utils/image.c:264,11'
          Dst:             Stream_Buffer
        - Src:             'winpr/libwinpr/utils/image.c:266,2'
          Dst:             Stream_Free
    - functionName:    Stream_Zero
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1208
      functionLinenumberEnd: 1210
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - _s
        - _n
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_Fill
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1209,3'
          Dst:             Stream_Fill
    - functionName:    Stream_Buffer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1231
      functionLinenumberEnd: 1233
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - _s
      BBCount:         9
      ICount:          32
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:1232,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:1232,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/stream.h:1232,3'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1232,3'
          Dst:             winpr_int_assert
    - functionName:    writeBitmapFileHeader
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 65
      functionLinenumberEnd: 76
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - bf
      BBCount:         90
      ICount:          270
      EdgeCount:       91
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - Stream_Write_UINT8_unchecked
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/image.c:66,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:67,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.4428
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.4428
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.4406
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.4406
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
            - BranchSide:      'winpr/libwinpr/utils/image.c:69,2'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.4428
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.4428
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.4406
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.4406
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
        - Branch String:   'winpr/libwinpr/utils/image.c:69,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:69,2'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.4428
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.4428
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.4406
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.4406
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
            - BranchSide:      'winpr/libwinpr/utils/image.c:69,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/image.c:69,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:69,2'
              BranchSideFuncs:
                - Stream_Write_UINT8_unchecked.4428
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.4428
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.4406
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.4406
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
            - BranchSide:      'winpr/libwinpr/utils/image.c:69,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/image.c:70,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:70,2'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_UINT8_unchecked.4428
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.4406
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.4406
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
            - BranchSide:      'winpr/libwinpr/utils/image.c:70,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/image.c:70,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:70,2'
              BranchSideFuncs:
                - Stream_Write_UINT8_unchecked.4428
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.4406
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.4406
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
            - BranchSide:      'winpr/libwinpr/utils/image.c:70,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/image.c:71,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:71,2'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.4406
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.4406
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
            - BranchSide:      'winpr/libwinpr/utils/image.c:71,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/image.c:71,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:71,2'
              BranchSideFuncs:
                - Stream_Write_UINT32_unchecked.4399
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.4406
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.4406
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
            - BranchSide:      'winpr/libwinpr/utils/image.c:71,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/image.c:72,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:72,2'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.4406
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.4406
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
            - BranchSide:      'winpr/libwinpr/utils/image.c:72,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/image.c:72,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:72,2'
              BranchSideFuncs:
                - Stream_Write_UINT16_unchecked.4406
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.4406
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
            - BranchSide:      'winpr/libwinpr/utils/image.c:72,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/image.c:73,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:73,2'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.4406
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
            - BranchSide:      'winpr/libwinpr/utils/image.c:73,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/image.c:73,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:73,2'
              BranchSideFuncs:
                - Stream_Write_UINT16_unchecked.4406
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
            - BranchSide:      'winpr/libwinpr/utils/image.c:73,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/image.c:74,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:74,2'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
            - BranchSide:      'winpr/libwinpr/utils/image.c:74,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/image.c:74,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:74,2'
              BranchSideFuncs:
                - Stream_Write_UINT32_unchecked.4399
            - BranchSide:      'winpr/libwinpr/utils/image.c:74,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/utils/image.c:66,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'winpr/libwinpr/utils/image.c:69,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:69,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:69,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'winpr/libwinpr/utils/image.c:70,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:70,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:70,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'winpr/libwinpr/utils/image.c:71,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:71,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:71,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'winpr/libwinpr/utils/image.c:72,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:72,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:72,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'winpr/libwinpr/utils/image.c:73,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:73,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:73,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'winpr/libwinpr/utils/image.c:74,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:74,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:74,2'
          Dst:             Stream_Write_UINT32_unchecked
    - functionName:    writeBitmapInfoHeader
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 113
      functionLinenumberEnd: 129
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - bi
      BBCount:         160
      ICount:          445
      EdgeCount:       161
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_INT32_unchecked
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/image.c:114,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:115,3'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_INT32_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_INT32_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.4406
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.4406
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_INT32_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_INT32_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
            - BranchSide:      'winpr/libwinpr/utils/image.c:117,2'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_INT32_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_INT32_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.4406
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.4406
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_INT32_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_INT32_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
        - Branch String:   'winpr/libwinpr/utils/image.c:117,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:117,2'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_INT32_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_INT32_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.4406
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.4406
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_INT32_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_INT32_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
            - BranchSide:      'winpr/libwinpr/utils/image.c:117,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/image.c:117,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:117,2'
              BranchSideFuncs:
                - Stream_Write_UINT32_unchecked.4399
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_INT32_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_INT32_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.4406
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.4406
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_INT32_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_INT32_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
            - BranchSide:      'winpr/libwinpr/utils/image.c:117,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/image.c:118,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:118,2'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_INT32_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_INT32_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.4406
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.4406
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_INT32_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_INT32_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
            - BranchSide:      'winpr/libwinpr/utils/image.c:118,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/image.c:118,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:118,2'
              BranchSideFuncs:
                - Stream_Write_INT32_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_INT32_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.4406
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.4406
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_INT32_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_INT32_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
            - BranchSide:      'winpr/libwinpr/utils/image.c:118,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/image.c:119,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:119,2'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_INT32_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.4406
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.4406
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_INT32_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_INT32_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
            - BranchSide:      'winpr/libwinpr/utils/image.c:119,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/image.c:119,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:119,2'
              BranchSideFuncs:
                - Stream_Write_INT32_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.4406
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.4406
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_INT32_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_INT32_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
            - BranchSide:      'winpr/libwinpr/utils/image.c:119,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/image.c:120,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:120,2'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.4406
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.4406
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_INT32_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_INT32_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
            - BranchSide:      'winpr/libwinpr/utils/image.c:120,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/image.c:120,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:120,2'
              BranchSideFuncs:
                - Stream_Write_UINT16_unchecked.4406
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.4406
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_INT32_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_INT32_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
            - BranchSide:      'winpr/libwinpr/utils/image.c:120,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/image.c:121,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:121,2'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_UINT16_unchecked.4406
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_INT32_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_INT32_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
            - BranchSide:      'winpr/libwinpr/utils/image.c:121,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/image.c:121,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:121,2'
              BranchSideFuncs:
                - Stream_Write_UINT16_unchecked.4406
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_INT32_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_INT32_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
            - BranchSide:      'winpr/libwinpr/utils/image.c:121,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/image.c:122,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:122,2'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_INT32_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_INT32_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
            - BranchSide:      'winpr/libwinpr/utils/image.c:122,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/image.c:122,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:122,2'
              BranchSideFuncs:
                - Stream_Write_UINT32_unchecked.4399
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_INT32_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_INT32_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
            - BranchSide:      'winpr/libwinpr/utils/image.c:122,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/image.c:123,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:123,2'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_INT32_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_INT32_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
            - BranchSide:      'winpr/libwinpr/utils/image.c:123,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/image.c:123,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:123,2'
              BranchSideFuncs:
                - Stream_Write_UINT32_unchecked.4399
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_INT32_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_INT32_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
            - BranchSide:      'winpr/libwinpr/utils/image.c:123,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/image.c:124,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:124,2'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_INT32_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_INT32_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
            - BranchSide:      'winpr/libwinpr/utils/image.c:124,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/image.c:124,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:124,2'
              BranchSideFuncs:
                - Stream_Write_INT32_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_INT32_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
            - BranchSide:      'winpr/libwinpr/utils/image.c:124,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/image.c:125,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:125,2'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_INT32_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
            - BranchSide:      'winpr/libwinpr/utils/image.c:125,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/image.c:125,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:125,2'
              BranchSideFuncs:
                - Stream_Write_INT32_unchecked
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
            - BranchSide:      'winpr/libwinpr/utils/image.c:125,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/image.c:126,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:126,2'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
            - BranchSide:      'winpr/libwinpr/utils/image.c:126,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/image.c:126,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:126,2'
              BranchSideFuncs:
                - Stream_Write_UINT32_unchecked.4399
                - winpr_int_assert
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
            - BranchSide:      'winpr/libwinpr/utils/image.c:126,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/image.c:127,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:127,2'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_Write_UINT32_unchecked.4399
            - BranchSide:      'winpr/libwinpr/utils/image.c:127,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/image.c:127,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:127,2'
              BranchSideFuncs:
                - Stream_Write_UINT32_unchecked.4399
            - BranchSide:      'winpr/libwinpr/utils/image.c:127,2'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/utils/image.c:114,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'winpr/libwinpr/utils/image.c:117,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:117,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:117,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'winpr/libwinpr/utils/image.c:118,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:118,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:118,2'
          Dst:             Stream_Write_INT32_unchecked
        - Src:             'winpr/libwinpr/utils/image.c:119,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:119,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:119,2'
          Dst:             Stream_Write_INT32_unchecked
        - Src:             'winpr/libwinpr/utils/image.c:120,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:120,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:120,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'winpr/libwinpr/utils/image.c:121,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:121,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:121,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'winpr/libwinpr/utils/image.c:122,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:122,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:122,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'winpr/libwinpr/utils/image.c:123,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:123,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:123,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'winpr/libwinpr/utils/image.c:124,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:124,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:124,2'
          Dst:             Stream_Write_INT32_unchecked
        - Src:             'winpr/libwinpr/utils/image.c:125,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:125,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:125,2'
          Dst:             Stream_Write_INT32_unchecked
        - Src:             'winpr/libwinpr/utils/image.c:126,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:126,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:126,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'winpr/libwinpr/utils/image.c:127,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:127,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:127,2'
          Dst:             Stream_Write_UINT32_unchecked
    - functionName:    Stream_Write_UINT32_unchecked
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1054
      functionLinenumberEnd: 1061
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - _s
        - _v
      BBCount:         21
      ICount:          70
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - winpr_Data_Write_UINT32
        - winpr_int_assert
      functionUses:    7
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:1055,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:1055,3'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_GetRemainingCapacity
                - winpr_int_assert
                - winpr_Data_Write_UINT32.4328
            - BranchSide:      'winpr/include/winpr/stream.h:1055,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:1056,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:1056,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - winpr_int_assert
                - winpr_Data_Write_UINT32.4328
            - BranchSide:      'winpr/include/winpr/stream.h:1056,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:1057,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:1057,3'
              BranchSideFuncs:
                - winpr_Data_Write_UINT32.4328
            - BranchSide:      'winpr/include/winpr/stream.h:1057,3'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1055,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1056,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1057,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:1057,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1059,3'
          Dst:             winpr_Data_Write_UINT32
    - functionName:    Stream_Write_INT32_unchecked
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1000
      functionLinenumberEnd: 1007
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - _s
        - _v
      BBCount:         21
      ICount:          70
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - winpr_Data_Write_INT32
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:1001,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:1001,3'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_GetRemainingCapacity
                - winpr_int_assert
                - winpr_Data_Write_INT32
            - BranchSide:      'winpr/include/winpr/stream.h:1001,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:1002,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:1002,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - winpr_int_assert
                - winpr_Data_Write_INT32
            - BranchSide:      'winpr/include/winpr/stream.h:1002,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:1003,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:1003,3'
              BranchSideFuncs:
                - winpr_Data_Write_INT32
            - BranchSide:      'winpr/include/winpr/stream.h:1003,3'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1001,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1002,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1003,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:1003,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1005,3'
          Dst:             winpr_Data_Write_INT32
    - functionName:    Stream_Write_UINT16_unchecked
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 892
      functionLinenumberEnd: 899
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - _s
        - _v
      BBCount:         21
      ICount:          70
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - winpr_Data_Write_UINT16
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:893,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:893,3'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_GetRemainingCapacity
                - winpr_int_assert
                - winpr_Data_Write_UINT16.4322
            - BranchSide:      'winpr/include/winpr/stream.h:893,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:894,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:894,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - winpr_int_assert
                - winpr_Data_Write_UINT16.4322
            - BranchSide:      'winpr/include/winpr/stream.h:894,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:895,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:895,3'
              BranchSideFuncs:
                - winpr_Data_Write_UINT16.4322
            - BranchSide:      'winpr/include/winpr/stream.h:895,3'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:893,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:894,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:895,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:895,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:897,3'
          Dst:             winpr_Data_Write_UINT16
    - functionName:    Stream_Write_UINT8_unchecked
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 840
      functionLinenumberEnd: 847
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - _s
        - _v
      BBCount:         21
      ICount:          70
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - winpr_Data_Write_UINT8
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:841,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:841,3'
              BranchSideFuncs:
                - winpr_int_assert
                - Stream_GetRemainingCapacity
                - winpr_int_assert
                - winpr_Data_Write_UINT8.4330
            - BranchSide:      'winpr/include/winpr/stream.h:841,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:842,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:842,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - winpr_int_assert
                - winpr_Data_Write_UINT8.4330
            - BranchSide:      'winpr/include/winpr/stream.h:842,3'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/include/winpr/stream.h:843,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:843,3'
              BranchSideFuncs:
                - winpr_Data_Write_UINT8.4330
            - BranchSide:      'winpr/include/winpr/stream.h:843,3'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:841,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:842,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:843,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:843,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:845,3'
          Dst:             winpr_Data_Write_UINT8
    - functionName:    winpr_image_write_ex
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 395
      functionLinenumberEnd: 403
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - image
        - format
        - filename
      BBCount:         12
      ICount:          60
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_image_write_buffer
        - winpr_int_assert
        - write_and_free
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/image.c:396,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:396,2'
              BranchSideFuncs:
                - winpr_image_write_buffer
                - write_and_free
            - BranchSide:      'winpr/libwinpr/utils/image.c:396,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/image.c:400,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:401,3'
              BranchSideFuncs:
                - write_and_free
            - BranchSide:      'winpr/libwinpr/utils/image.c:402,24'
              BranchSideFuncs:
                - write_and_free
      Callsites:
        - Src:             'winpr/libwinpr/utils/image.c:396,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:399,15'
          Dst:             winpr_image_write_buffer
        - Src:             'winpr/libwinpr/utils/image.c:402,9'
          Dst:             write_and_free
    - functionName:    winpr_image_write
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 389
      functionLinenumberEnd: 391
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - image
        - filename
      BBCount:         30
      ICount:          113
      EdgeCount:       33
      CyclomaticComplexity: 5
      functionsReached:
        - winpr_image_write_ex
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/image.c:390,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:390,2'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_int_assert
                - winpr_image_write_ex
            - BranchSide:      'winpr/libwinpr/utils/image.c:390,2'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/image.c:391,37'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:391,37'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_image_write_ex
            - BranchSide:      'winpr/libwinpr/utils/image.c:391,37'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/image.c:391,37'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:391,37'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_image_write_ex
            - BranchSide:      'winpr/libwinpr/utils/image.c:391,37'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_image_write_ex
        - Branch String:   'winpr/libwinpr/utils/image.c:391,37'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:391,37'
              BranchSideFuncs:
                - winpr_image_write_ex
            - BranchSide:      'winpr/libwinpr/utils/image.c:391,37'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_image_write_ex
        - Branch String:   'winpr/libwinpr/utils/image.c:391,37'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:391,37'
              BranchSideFuncs:
                - winpr_int_assert
                - winpr_image_write_ex
            - BranchSide:      'winpr/libwinpr/utils/image.c:391,37'
              BranchSideFuncs:
                - winpr_int_assert
        - Branch String:   'winpr/libwinpr/utils/image.c:391,37'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:391,37'
              BranchSideFuncs:
                - winpr_image_write_ex
            - BranchSide:      'winpr/libwinpr/utils/image.c:391,37'
              BranchSideFuncs:
                - winpr_int_assert
      Callsites:
        - Src:             'winpr/libwinpr/utils/image.c:390,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:391,37'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:391,37'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:391,9'
          Dst:             winpr_image_write_ex
    - functionName:    winpr_bitmap_write_ex
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 331
      functionLinenumberEnd: 366
      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:         25
      ICount:          169
      EdgeCount:       34
      CyclomaticComplexity: 11
      functionsReached:
        - WLog_Print_dbg_tag
        - fclose
        - fwrite
        - winpr_bitmap_write_buffer
        - winpr_fopen
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/image.c:337,28'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:337,32'
              BranchSideFuncs:
                - free
                - fclose
            - BranchSide:      'winpr/libwinpr/utils/image.c:339,3'
              BranchSideFuncs:
                - free
                - fclose
        - Branch String:   'winpr/libwinpr/utils/image.c:337,52'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:337,56'
              BranchSideFuncs:
                - free
                - fclose
            - BranchSide:      'winpr/libwinpr/utils/image.c:339,3'
              BranchSideFuncs:
                - free
                - fclose
        - Branch String:   'winpr/libwinpr/utils/image.c:337,77'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:338,7'
              BranchSideFuncs:
                - free
                - fclose
            - BranchSide:      'winpr/libwinpr/utils/image.c:339,3'
              BranchSideFuncs:
                - free
                - fclose
        - Branch String:   'winpr/libwinpr/utils/image.c:337,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:339,3'
              BranchSideFuncs:
                - free
                - fclose
            - BranchSide:      'winpr/libwinpr/utils/image.c:341,6'
              BranchSideFuncs:
                - winpr_bitmap_write_buffer
                - free
                - fclose
                - winpr_fopen
                - WLog_Print_dbg_tag.4337
                - fwrite
        - Branch String:   'winpr/libwinpr/utils/image.c:341,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:342,12'
              BranchSideFuncs:
                - winpr_bitmap_write_buffer
                - free
                - fclose
                - winpr_fopen
                - WLog_Print_dbg_tag.4337
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/image.c:344,9'
              BranchSideFuncs:
                - winpr_bitmap_write_buffer
                - free
                - fclose
                - winpr_fopen
                - WLog_Print_dbg_tag.4337
                - fwrite
        - Branch String:   'winpr/libwinpr/utils/image.c:348,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:349,3'
              BranchSideFuncs:
                - winpr_fopen
                - WLog_Print_dbg_tag.4337
                - free
                - fclose
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/image.c:351,19'
              BranchSideFuncs:
                - winpr_fopen
                - WLog_Print_dbg_tag.4337
                - free
                - fclose
                - fwrite
        - Branch String:   'winpr/libwinpr/utils/image.c:352,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:354,3'
              BranchSideFuncs:
                - fwrite
                - free
                - fclose
            - BranchSide:      'winpr/libwinpr/utils/image.c:358,13'
              BranchSideFuncs:
                - fwrite
                - free
                - fclose
        - Branch String:   'winpr/libwinpr/utils/image.c:358,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:359,3'
              BranchSideFuncs:
                - free
                - fclose
            - BranchSide:      'winpr/libwinpr/utils/image.c:361,6'
              BranchSideFuncs:
                - free
                - fclose
        - Branch String:   'winpr/libwinpr/utils/image.c:363,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:363,6'
              BranchSideFuncs:
                - fclose
                - free
            - BranchSide:      'winpr/libwinpr/utils/image.c:364,16'
              BranchSideFuncs:
                - fclose
                - free
      Callsites:
        - Src:             'winpr/libwinpr/utils/image.c:346,12'
          Dst:             winpr_bitmap_write_buffer
        - Src:             'winpr/libwinpr/utils/image.c:351,7'
          Dst:             winpr_fopen
        - Src:             'winpr/libwinpr/utils/image.c:354,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/utils/image.c:358,6'
          Dst:             fwrite
        - Src:             'winpr/libwinpr/utils/image.c:364,9'
          Dst:             fclose
    - functionName:    winpr_bitmap_write
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 325
      functionLinenumberEnd: 326
      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:326,9'
          Dst:             winpr_bitmap_write_ex
...
