---
Fuzzer filename: '/src/FreeRDP/winpr/libwinpr/sspi/test/TestFuzzNTLMMessage.c'
All functions:
  Function list name: All functions
  Elements:
    - functionName:    fuzz_ntlm_client_uninit
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/test/TestFuzzNTLMMessage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 62
      functionLinenumberEnd: 82
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         23
      ICount:          162
      EdgeCount:       31
      CyclomaticComplexity: 10
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fuzz_ntlm_client_step
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/test/TestFuzzNTLMMessage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 118
      functionLinenumberEnd: 164
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         36
      ICount:          263
      EdgeCount:       45
      CyclomaticComplexity: 11
      functionsReached:
        - IsSecurityStatusError
        - calloc
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/test/TestFuzzNTLMMessage.c:121,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/test/TestFuzzNTLMMessage.c:131,37'
          Dst:             calloc
        - Src:             'winpr/libwinpr/sspi/test/TestFuzzNTLMMessage.c:160,7'
          Dst:             IsSecurityStatusError
    - 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:    123
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fuzz_ntlm_client_init
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/test/TestFuzzNTLMMessage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 85
      functionLinenumberEnd: 115
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          135
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - InitSecurityInterfaceExA
        - sspi_SetAuthIdentityA
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/test/TestFuzzNTLMMessage.c:88,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/test/TestFuzzNTLMMessage.c:94,18'
          Dst:             InitSecurityInterfaceExA
        - Src:             'winpr/libwinpr/sspi/test/TestFuzzNTLMMessage.c:98,6'
          Dst:             sspi_SetAuthIdentityA
    - functionName:    fuzz_ntlm_server_uninit
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/test/TestFuzzNTLMMessage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 167
      functionLinenumberEnd: 183
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          137
      EdgeCount:       28
      CyclomaticComplexity: 9
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fuzz_ntlm_server_step
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/test/TestFuzzNTLMMessage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 217
      functionLinenumberEnd: 257
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          201
      EdgeCount:       25
      CyclomaticComplexity: 6
      functionsReached:
        - IsSecurityStatusError
        - calloc
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/test/TestFuzzNTLMMessage.c:220,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/test/TestFuzzNTLMMessage.c:235,37'
          Dst:             calloc
        - Src:             'winpr/libwinpr/sspi/test/TestFuzzNTLMMessage.c:244,7'
          Dst:             IsSecurityStatusError
    - functionName:    fuzz_ntlm_set_input
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/test/TestFuzzNTLMMessage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 261
      functionLinenumberEnd: 269
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          63
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/test/TestFuzzNTLMMessage.c:262,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/test/TestFuzzNTLMMessage.c:263,2'
          Dst:             winpr_int_assert
    - functionName:    fuzz_ntlm_server_init
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/test/TestFuzzNTLMMessage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 186
      functionLinenumberEnd: 214
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          119
      EdgeCount:       19
      CyclomaticComplexity: 5
      functionsReached:
        - InitSecurityInterfaceExA
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/test/TestFuzzNTLMMessage.c:189,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/test/TestFuzzNTLMMessage.c:195,18'
          Dst:             InitSecurityInterfaceExA
    - functionName:    fuzz_ntlm_authenticate
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/test/TestFuzzNTLMMessage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 303
      functionLinenumberEnd: 326
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          77
      EdgeCount:       16
      CyclomaticComplexity: 6
      functionsReached:
        - fuzz_ntlm_client_init
        - fuzz_ntlm_client_step
        - fuzz_ntlm_client_uninit
        - fuzz_ntlm_server_init
        - fuzz_ntlm_server_step
        - fuzz_ntlm_server_uninit
        - fuzz_ntlm_set_input
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/test/TestFuzzNTLMMessage.c:307,7'
          Dst:             fuzz_ntlm_client_init
        - Src:             'winpr/libwinpr/sspi/test/TestFuzzNTLMMessage.c:309,7'
          Dst:             fuzz_ntlm_server_init
        - Src:             'winpr/libwinpr/sspi/test/TestFuzzNTLMMessage.c:312,6'
          Dst:             fuzz_ntlm_client_step
        - Src:             'winpr/libwinpr/sspi/test/TestFuzzNTLMMessage.c:315,2'
          Dst:             fuzz_ntlm_set_input
        - Src:             'winpr/libwinpr/sspi/test/TestFuzzNTLMMessage.c:317,6'
          Dst:             fuzz_ntlm_server_step
        - Src:             'winpr/libwinpr/sspi/test/TestFuzzNTLMMessage.c:320,2'
          Dst:             fuzz_ntlm_set_input
        - Src:             'winpr/libwinpr/sspi/test/TestFuzzNTLMMessage.c:321,8'
          Dst:             fuzz_ntlm_server_step
        - Src:             'winpr/libwinpr/sspi/test/TestFuzzNTLMMessage.c:324,2'
          Dst:             fuzz_ntlm_client_uninit
        - Src:             'winpr/libwinpr/sspi/test/TestFuzzNTLMMessage.c:325,2'
          Dst:             fuzz_ntlm_server_uninit
    - functionName:    fuzz_ntlm_challenge
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/test/TestFuzzNTLMMessage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 286
      functionLinenumberEnd: 300
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          46
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - IsSecurityStatusError
        - fuzz_ntlm_client_init
        - fuzz_ntlm_client_step
        - fuzz_ntlm_client_uninit
        - fuzz_ntlm_set_input
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/test/TestFuzzNTLMMessage.c:289,7'
          Dst:             fuzz_ntlm_client_init
        - Src:             'winpr/libwinpr/sspi/test/TestFuzzNTLMMessage.c:292,28'
          Dst:             fuzz_ntlm_client_step
        - Src:             'winpr/libwinpr/sspi/test/TestFuzzNTLMMessage.c:292,6'
          Dst:             IsSecurityStatusError
        - Src:             'winpr/libwinpr/sspi/test/TestFuzzNTLMMessage.c:295,2'
          Dst:             fuzz_ntlm_set_input
        - Src:             'winpr/libwinpr/sspi/test/TestFuzzNTLMMessage.c:296,8'
          Dst:             fuzz_ntlm_client_step
        - Src:             'winpr/libwinpr/sspi/test/TestFuzzNTLMMessage.c:299,2'
          Dst:             fuzz_ntlm_client_uninit
    - functionName:    fuzz_ntlm_negotiate
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/test/TestFuzzNTLMMessage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 272
      functionLinenumberEnd: 283
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - fuzz_ntlm_server_init
        - fuzz_ntlm_server_step
        - fuzz_ntlm_server_uninit
        - fuzz_ntlm_set_input
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/test/TestFuzzNTLMMessage.c:275,7'
          Dst:             fuzz_ntlm_server_init
        - Src:             'winpr/libwinpr/sspi/test/TestFuzzNTLMMessage.c:278,2'
          Dst:             fuzz_ntlm_set_input
        - Src:             'winpr/libwinpr/sspi/test/TestFuzzNTLMMessage.c:279,8'
          Dst:             fuzz_ntlm_server_step
        - Src:             'winpr/libwinpr/sspi/test/TestFuzzNTLMMessage.c:282,2'
          Dst:             fuzz_ntlm_server_uninit
    - functionName:    LLVMFuzzerTestOneInput
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/test/TestFuzzNTLMMessage.c'
      linkageType:     externalLinkage
      functionLinenumber: 329
      functionLinenumberEnd: 359
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          91
      EdgeCount:       18
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_GetRoot
        - WLog_SetLogLevel
        - fuzz_ntlm_authenticate
        - fuzz_ntlm_challenge
        - fuzz_ntlm_negotiate
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/sspi/test/TestFuzzNTLMMessage.c:343,2'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/test/TestFuzzNTLMMessage.c:334,26'
          Dst:             WLog_GetRoot
        - Src:             'winpr/libwinpr/sspi/test/TestFuzzNTLMMessage.c:334,9'
          Dst:             WLog_SetLogLevel
        - Src:             'winpr/libwinpr/sspi/test/TestFuzzNTLMMessage.c:346,4'
          Dst:             fuzz_ntlm_negotiate
        - Src:             'winpr/libwinpr/sspi/test/TestFuzzNTLMMessage.c:349,4'
          Dst:             fuzz_ntlm_challenge
        - Src:             'winpr/libwinpr/sspi/test/TestFuzzNTLMMessage.c:352,4'
          Dst:             fuzz_ntlm_authenticate
    - functionName:    WLog_ParseName
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 813
      functionLinenumberEnd: 854
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          135
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - _strdup
        - calloc
        - strchr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:819,15'
          Dst:             strchr
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:825,10'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:831,23'
          Dst:             calloc
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:844,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:    22
      BranchProfiles:  []
      Callsites:       []
    - functionName:    WLog_Unlock
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 107
      functionLinenumberEnd: 110
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          31
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - LeaveCriticalSection
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:108,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:109,2'
          Dst:             LeaveCriticalSection
    - functionName:    WLog_Lock
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 101
      functionLinenumberEnd: 104
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          31
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - EnterCriticalSection
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:102,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:103,2'
          Dst:             EnterCriticalSection
    - functionName:    WLog_AddChild
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 962
      functionLinenumberEnd: 1002
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          123
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - WLog_Lock
        - WLog_Unlock
        - realloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:965,2'
          Dst:             WLog_Lock
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:979,16'
          Dst:             realloc
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:998,2'
          Dst:             WLog_Unlock
    - 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:    14
      BranchProfiles:  []
      Callsites:       []
    - functionName:    WLog_FindChild
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1006
      functionLinenumberEnd: 1028
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          79
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Lock
        - WLog_Unlock
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:1012,2'
          Dst:             WLog_Lock
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:1018,7'
          Dst:             strcmp
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:1025,2'
          Dst:             WLog_Unlock
    - 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:    25
      BranchProfiles:  []
      Callsites:       []
    - functionName:    WLog_Uninit_
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 98
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         10
      ICount:          61
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Free
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:91,3'
          Dst:             WLog_Free
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:94,2'
          Dst:             WLog_Free
    - functionName:    WLog_Free
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 932
      functionLinenumberEnd: 951
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          78
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - DeleteCriticalSection
        - WLog_Appender_Free
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:937,4'
          Dst:             WLog_Appender_Free
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:948,3'
          Dst:             DeleteCriticalSection
    - functionName:    WLog_ParseFilters
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 741
      functionLinenumberEnd: 764
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          77
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - GetEnvironmentVariableA
        - WLog_AddStringLogFilters_int
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:749,10'
          Dst:             GetEnvironmentVariableA
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:759,6'
          Dst:             GetEnvironmentVariableA
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:760,9'
          Dst:             WLog_AddStringLogFilters_int
    - functionName:    WLog_AddStringLogFilters_int
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 520
      functionLinenumberEnd: 580
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         29
      ICount:          174
      EdgeCount:       38
      CyclomaticComplexity: 11
      functionsReached:
        - WLog_ParseFilter
        - WLog_reset_log_filters
        - _strdup
        - realloc
        - strchr
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:530,16'
          Dst:             strchr
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:538,33'
          Dst:             realloc
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:544,20'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:554,7'
          Dst:             strchr
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:561,9'
          Dst:             WLog_ParseFilter
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:579,9'
          Dst:             WLog_reset_log_filters
    - functionName:    WLog_ParseFilter
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 658
      functionLinenumberEnd: 738
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          222
      EdgeCount:       35
      CyclomaticComplexity: 11
      functionsReached:
        - WLog_ParseLogLevel
        - _strdup
        - calloc
        - strchr
        - strrchr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:676,16'
          Dst:             strchr
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:683,10'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:689,26'
          Dst:             calloc
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:702,6'
          Dst:             strrchr
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:715,11'
          Dst:             WLog_ParseLogLevel
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:728,14'
          Dst:             strchr
    - functionName:    WLog_reset_log_filters
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 502
      functionLinenumberEnd: 517
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          68
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_reset_log_filters
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:512,8'
          Dst:             WLog_reset_log_filters
    - 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:    11
      BranchProfiles:  []
      Callsites:       []
    - functionName:    WLog_ParseLogLevel
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 633
      functionLinenumberEnd: 655
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         27
      ICount:          108
      EdgeCount:       35
      CyclomaticComplexity: 10
      functionsReached:
        - _stricmp
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:639,6'
          Dst:             _stricmp
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:641,11'
          Dst:             _stricmp
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:643,11'
          Dst:             _stricmp
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:645,11'
          Dst:             _stricmp
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:647,11'
          Dst:             _stricmp
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:649,11'
          Dst:             _stricmp
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:651,11'
          Dst:             _stricmp
    - functionName:    log_recursion
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 182
      functionLinenumberEnd: 229
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          111
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - fprintf
        - winpr_backtrace
        - winpr_backtrace_free
        - winpr_backtrace_symbols
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:186,13'
          Dst:             winpr_backtrace
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:194,8'
          Dst:             winpr_backtrace_symbols
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:213,6'
          Dst:             fprintf
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:216,6'
          Dst:             fprintf
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:220,7'
          Dst:             fprintf
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:227,2'
          Dst:             winpr_backtrace_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_Write
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 232
      functionLinenumberEnd: 259
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          115
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - EnterCriticalSection
        - LeaveCriticalSection
        - WLog_GetLogAppender
        - WLog_OpenAppender
        - log_recursion
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:234,27'
          Dst:             WLog_GetLogAppender
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:240,8'
          Dst:             WLog_OpenAppender
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:243,2'
          Dst:             EnterCriticalSection
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:248,13'
          Dst:             log_recursion
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:257,2'
          Dst:             LeaveCriticalSection
    - functionName:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 323
      functionLinenumberEnd: 335
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          65
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintTextMessageVA
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:326,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:328,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:332,4'
          Dst:             WLog_PrintTextMessageVA
    - functionName:    WLog_Get
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1053
      functionLinenumberEnd: 1055
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_GetRoot
        - WLog_Get_int
      functionUses:    62
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:1054,15'
          Dst:             WLog_GetRoot
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:1055,9'
          Dst:             WLog_Get_int
    - functionName:    WLog_IsLevelActive
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 472
      functionLinenumberEnd: 484
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          49
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_GetLogLevel
      functionUses:    108
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:478,10'
          Dst:             WLog_GetLogLevel
    - functionName:    WLog_PrintTextMessageVA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 420
      functionLinenumberEnd: 430
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          47
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_PrintTextMessageInternal
      functionUses:    52
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:430,9'
          Dst:             WLog_PrintTextMessageInternal
    - functionName:    WLog_PrintTextMessageInternal
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 354
      functionLinenumberEnd: 369
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          57
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_Write
        - __assert_fail
        - vsnprintf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:355,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:363,6'
          Dst:             vsnprintf
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:368,9'
          Dst:             WLog_Write
    - 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:    4
      BranchProfiles:  []
      Callsites:       []
    - 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:    WLog_GetLogLevel
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 456
      functionLinenumberEnd: 469
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          86
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - WLog_GetFilterLogLevel
        - WLog_GetLogLevel
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:461,22'
          Dst:             WLog_GetFilterLogLevel
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:466,16'
          Dst:             WLog_GetLogLevel
    - functionName:    WLog_GetFilterLogLevel
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 767
      functionLinenumberEnd: 810
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         35
      ICount:          214
      EdgeCount:       44
      CyclomaticComplexity: 11
      functionsReached:
        - __assert_fail
        - _stricmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:782,8'
          Dst:             _stricmp
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:785,5'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:790,8'
          Dst:             _stricmp
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:798,6'
          Dst:             __assert_fail
    - functionName:    WLog_GetRoot
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 954
      functionLinenumberEnd: 959
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          28
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_InitializeRoot
        - winpr_InitOnceExecuteOnce
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:955,7'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:955,7'
          Dst:             WLog_InitializeRoot
    - functionName:    WLog_Get_int
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1031
      functionLinenumberEnd: 1050
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          68
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - WLog_AddChild
        - WLog_FindChild
        - WLog_Free
        - WLog_New
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:1034,14'
          Dst:             WLog_FindChild
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:1039,15'
          Dst:             WLog_New
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:1042,8'
          Dst:             WLog_AddChild
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:1044,4'
          Dst:             WLog_Free
    - functionName:    WLog_New
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 857
      functionLinenumberEnd: 929
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         33
      ICount:          198
      EdgeCount:       45
      CyclomaticComplexity: 14
      functionsReached:
        - GetEnvironmentVariableA
        - InitializeCriticalSectionAndSpinCount
        - WLog_Free
        - WLog_GetFilterLogLevel
        - WLog_ParseLogLevel
        - WLog_ParseName
        - WLog_SetLogLevel
        - _strdup
        - calloc
        - fprintf
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:862,15'
          Dst:             calloc
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:867,14'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:872,7'
          Dst:             WLog_ParseName
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:887,11'
          Dst:             GetEnvironmentVariableA
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:896,8'
          Dst:             GetEnvironmentVariableA
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:898,11'
          Dst:             fprintf
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:903,13'
          Dst:             WLog_ParseLogLevel
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:908,10'
          Dst:             WLog_SetLogLevel
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:914,11'
          Dst:             WLog_GetFilterLogLevel
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:918,8'
          Dst:             WLog_SetLogLevel
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:922,7'
          Dst:             InitializeCriticalSectionAndSpinCount
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:927,2'
          Dst:             WLog_Free
    - functionName:    WLog_SetLogLevel
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 611
      functionLinenumberEnd: 630
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          102
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - WLog_UpdateInheritLevel
        - WLog_reset_log_filters
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:625,8'
          Dst:             WLog_UpdateInheritLevel
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:629,9'
          Dst:             WLog_reset_log_filters
    - functionName:    WLog_UpdateInheritLevel
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 590
      functionLinenumberEnd: 608
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          83
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - WLog_UpdateInheritLevel
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:602,9'
          Dst:             WLog_UpdateInheritLevel
    - functionName:    WLog_InitializeRoot
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 113
      functionLinenumberEnd: 179
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         33
      ICount:          172
      EdgeCount:       44
      CyclomaticComplexity: 13
      functionsReached:
        - GetEnvironmentVariableA
        - WLog_New
        - WLog_ParseFilters
        - WLog_SetLogAppenderType
        - WLog_Uninit_
        - _stricmp
        - fprintf
        - winpr_atexit
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:123,20'
          Dst:             WLog_New
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:128,10'
          Dst:             GetEnvironmentVariableA
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:137,7'
          Dst:             GetEnvironmentVariableA
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:139,10'
          Dst:             fprintf
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:144,7'
          Dst:             _stricmp
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:146,12'
          Dst:             _stricmp
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:148,12'
          Dst:             _stricmp
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:152,12'
          Dst:             _stricmp
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:161,12'
          Dst:             _stricmp
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:167,7'
          Dst:             WLog_SetLogAppenderType
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:170,7'
          Dst:             WLog_ParseFilters
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:173,8'
          Dst:             winpr_atexit
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:173,8'
          Dst:             WLog_Uninit_
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:177,2'
          Dst:             WLog_Uninit_
    - functionName:    WLog_Discard
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1125
      functionLinenumberEnd: 1136
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          42
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Free
        - WLog_Print_dbg_tag
        - winpr_log_backtrace
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:1131,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:1132,3'
          Dst:             winpr_log_backtrace
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:1135,2'
          Dst:             WLog_Free
    - functionName:    WLog_Create
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1116
      functionLinenumberEnd: 1122
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_New
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:1117,14'
          Dst:             WLog_New
    - functionName:    WLog_GetGlobalPrefix
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1111
      functionLinenumberEnd: 1112
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    WLog_SetGlobalContext
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1098
      functionLinenumberEnd: 1108
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - _strdup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:1104,20'
          Dst:             _strdup
    - functionName:    WLog_SetContext
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1089
      functionLinenumberEnd: 1094
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          40
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:1090,2'
          Dst:             winpr_int_assert
    - functionName:    WLog_AddStringLogFilters
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 583
      functionLinenumberEnd: 586
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_AddStringLogFilters_int
        - WLog_GetRoot
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:585,15'
          Dst:             WLog_GetRoot
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:586,9'
          Dst:             WLog_AddStringLogFilters_int
    - functionName:    WLog_SetStringLogLevel
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 487
      functionLinenumberEnd: 499
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          55
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_ParseLogLevel
        - WLog_SetLogLevel
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:493,8'
          Dst:             WLog_ParseLogLevel
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:498,9'
          Dst:             WLog_SetLogLevel
    - functionName:    WLog_PrintTextMessage
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 446
      functionLinenumberEnd: 452
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          41
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_PrintTextMessageVA
      functionUses:    56
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:450,11'
          Dst:             WLog_PrintTextMessageVA
    - functionName:    WLog_PrintMessage
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 435
      functionLinenumberEnd: 441
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - int
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          41
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_PrintMessageVA
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:439,11'
          Dst:             WLog_PrintMessageVA
    - functionName:    WLog_PrintMessageVA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 373
      functionLinenumberEnd: 415
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - int
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         39
      ICount:          340
      EdgeCount:       48
      CyclomaticComplexity: 11
      functionsReached:
        - WLog_PrintTextMessageInternal
        - WLog_WriteData
        - WLog_WriteImage
        - WLog_WritePacket
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:382,2'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:387,13'
          Dst:             WLog_PrintTextMessageInternal
        - 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_WriteData
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 262
      functionLinenumberEnd: 289
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          115
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - EnterCriticalSection
        - LeaveCriticalSection
        - WLog_GetLogAppender
        - WLog_OpenAppender
        - log_recursion
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:264,27'
          Dst:             WLog_GetLogAppender
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:270,8'
          Dst:             WLog_OpenAppender
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:276,2'
          Dst:             EnterCriticalSection
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:279,12'
          Dst:             log_recursion
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:287,2'
          Dst:             LeaveCriticalSection
    - functionName:    WLog_WriteImage
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 292
      functionLinenumberEnd: 320
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          116
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - EnterCriticalSection
        - LeaveCriticalSection
        - WLog_GetLogAppender
        - WLog_OpenAppender
        - log_recursion
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:295,13'
          Dst:             WLog_GetLogAppender
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:301,8'
          Dst:             WLog_OpenAppender
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:307,2'
          Dst:             EnterCriticalSection
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:310,12'
          Dst:             log_recursion
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:318,2'
          Dst:             LeaveCriticalSection
    - functionName:    WLog_WritePacket
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 323
      functionLinenumberEnd: 351
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          116
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - EnterCriticalSection
        - LeaveCriticalSection
        - WLog_GetLogAppender
        - WLog_OpenAppender
        - log_recursion
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:326,13'
          Dst:             WLog_GetLogAppender
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:332,8'
          Dst:             WLog_OpenAppender
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:338,2'
          Dst:             EnterCriticalSection
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:341,12'
          Dst:             log_recursion
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:349,2'
          Dst:             LeaveCriticalSection
    - functionName:    WLog_GetAppenderContext
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/Appender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 207
      functionLinenumberEnd: 222
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          70
      EdgeCount:       29
      CyclomaticComplexity: 16
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/Appender.c:209,2'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/Appender.c:208,2'
          Dst:             winpr_int_assert
    - functionName:    WLog_SetAppenderContext
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/Appender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 184
      functionLinenumberEnd: 204
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          65
      EdgeCount:       17
      CyclomaticComplexity: 10
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/Appender.c:187,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    WLog_ConfigureAppender
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/Appender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 172
      functionLinenumberEnd: 181
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          68
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - strnlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/Appender.c:174,32'
          Dst:             strnlen
    - 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:    51
      BranchProfiles:  []
      Callsites:       []
    - functionName:    WLog_Appender_New
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/Appender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 95
      functionLinenumberEnd: 154
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         23
      ICount:          138
      EdgeCount:       27
      CyclomaticComplexity: 6
      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:101,2'
          Branch Sides:    []
      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,7'
          Dst:             InitializeCriticalSectionAndSpinCount
        - Src:             'winpr/libwinpr/utils/wlog/Appender.c:149,3'
          Dst:             WLog_Appender_Free
    - 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:
        - ''
        - ''
      BBCount:         9
      ICount:          54
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - DeleteCriticalSection
        - WLog_Layout_Free
      functionUses:    4
      BranchProfiles:  []
      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: 157
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          59
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Appender_Free
        - WLog_Appender_New
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/Appender.c:163,3'
          Dst:             WLog_Appender_Free
        - Src:             'winpr/libwinpr/utils/wlog/Appender.c:167,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:
        - ''
      BBCount:         11
      ICount:          69
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_GetLogAppender
      functionUses:    0
      BranchProfiles:  []
      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:
        - ''
      BBCount:         8
      ICount:          45
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_GetLogAppender
      functionUses:    8
      BranchProfiles:  []
      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:
        - ''
      BBCount:         11
      ICount:          69
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_GetLogAppender
      functionUses:    4
      BranchProfiles:  []
      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: 47
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          52
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - _strdup
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/FileAppender.c:42,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/FileAppender.c:43,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/FileAppender.c:45,23'
          Dst:             _strdup
    - functionName:    WLog_FileAppender_SetOutputFilePath
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/FileAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 51
      functionLinenumberEnd: 54
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - _strdup
      functionUses:    2
      BranchProfiles:  []
      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: 174
      functionLinenumberEnd: 188
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          71
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - WLog_FileAppender_SetOutputFileName
        - WLog_FileAppender_SetOutputFilePath
        - strcmp
        - strnlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/FileAppender.c:178,17'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/utils/wlog/FileAppender.c:181,7'
          Dst:             strcmp
        - Src:             'winpr/libwinpr/utils/wlog/FileAppender.c:182,10'
          Dst:             WLog_FileAppender_SetOutputFileName
        - Src:             'winpr/libwinpr/utils/wlog/FileAppender.c:184,7'
          Dst:             strcmp
        - Src:             'winpr/libwinpr/utils/wlog/FileAppender.c:185,10'
          Dst:             WLog_FileAppender_SetOutputFilePath
    - functionName:    WLog_FileAppender_Free
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/FileAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 191
      functionLinenumberEnd: 202
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    WLog_FileAppender_WriteImageMessage
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/FileAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 161
      functionLinenumberEnd: 171
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          72
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_ImageMessage_Write
        - WLog_Message_GetOutputFileName
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/FileAppender.c:166,23'
          Dst:             WLog_Message_GetOutputFileName
        - Src:             'winpr/libwinpr/utils/wlog/FileAppender.c:167,2'
          Dst:             WLog_ImageMessage_Write
    - functionName:    WLog_FileAppender_WriteDataMessage
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/FileAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 146
      functionLinenumberEnd: 155
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          66
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_DataMessage_Write
        - WLog_Message_GetOutputFileName
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/FileAppender.c:151,23'
          Dst:             WLog_Message_GetOutputFileName
        - Src:             'winpr/libwinpr/utils/wlog/FileAppender.c:152,2'
          Dst:             WLog_DataMessage_Write
    - functionName:    WLog_FileAppender_WriteMessage
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/FileAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 125
      functionLinenumberEnd: 140
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          80
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - WLog_Layout_GetMessagePrefix
        - fflush
        - fprintf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/FileAppender.c:136,2'
          Dst:             WLog_Layout_GetMessagePrefix
        - Src:             'winpr/libwinpr/utils/wlog/FileAppender.c:137,8'
          Dst:             fprintf
        - Src:             'winpr/libwinpr/utils/wlog/FileAppender.c:138,8'
          Dst:             fflush
    - functionName:    fflush
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    WLog_FileAppender_Close
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/FileAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 107
      functionLinenumberEnd: 121
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          59
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - fclose
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/FileAppender.c:118,8'
          Dst:             fclose
    - functionName:    fclose
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    11
      BranchProfiles:  []
      Callsites:       []
    - functionName:    WLog_FileAppender_Open
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/FileAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 58
      functionLinenumberEnd: 104
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         29
      ICount:          174
      EdgeCount:       39
      CyclomaticComplexity: 12
      functionsReached:
        - GetCombinedPath
        - GetCurrentProcessId
        - GetKnownSubPath
        - UnixChangeFileMode
        - snprintf
        - winpr_PathFileExists
        - winpr_PathMakePath
        - winpr_fopen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/FileAppender.c:68,28'
          Dst:             GetKnownSubPath
        - Src:             'winpr/libwinpr/utils/wlog/FileAppender.c:81,72'
          Dst:             GetCurrentProcessId
        - Src:             'winpr/libwinpr/utils/wlog/FileAppender.c:81,9'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/utils/wlog/FileAppender.c:87,7'
          Dst:             GetCombinedPath
        - Src:             'winpr/libwinpr/utils/wlog/FileAppender.c:93,7'
          Dst:             winpr_PathFileExists
        - Src:             'winpr/libwinpr/utils/wlog/FileAppender.c:95,8'
          Dst:             winpr_PathMakePath
        - Src:             'winpr/libwinpr/utils/wlog/FileAppender.c:98,3'
          Dst:             UnixChangeFileMode
        - Src:             'winpr/libwinpr/utils/wlog/FileAppender.c:101,33'
          Dst:             winpr_fopen
    - 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:    52
      BranchProfiles:  []
      Callsites:       []
    - functionName:    WLog_FileAppender_New
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/FileAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 205
      functionLinenumberEnd: 272
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         27
      ICount:          195
      EdgeCount:       36
      CyclomaticComplexity: 11
      functionsReached:
        - GetEnvironmentVariableA
        - WLog_FileAppender_SetOutputFileName
        - WLog_FileAppender_SetOutputFilePath
        - calloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/FileAppender.c:210,36'
          Dst:             calloc
        - Src:             'winpr/libwinpr/utils/wlog/FileAppender.c:224,10'
          Dst:             GetEnvironmentVariableA
        - Src:             'winpr/libwinpr/utils/wlog/FileAppender.c:234,7'
          Dst:             GetEnvironmentVariableA
        - Src:             'winpr/libwinpr/utils/wlog/FileAppender.c:240,12'
          Dst:             WLog_FileAppender_SetOutputFilePath
        - Src:             'winpr/libwinpr/utils/wlog/FileAppender.c:248,10'
          Dst:             GetEnvironmentVariableA
        - Src:             'winpr/libwinpr/utils/wlog/FileAppender.c:258,7'
          Dst:             GetEnvironmentVariableA
        - Src:             'winpr/libwinpr/utils/wlog/FileAppender.c:259,13'
          Dst:             WLog_FileAppender_SetOutputFileName
    - functionName:    Stream_Seek
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 157
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          51
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:158,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:159,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:159,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:
        - ''
        - ''
      BBCount:         9
      ICount:          48
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      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:
        - ''
        - ''
      BBCount:         9
      ICount:          45
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_Data_Write_UINT16
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      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: 1285
      functionLinenumberEnd: 1287
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          31
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1286,3'
          Dst:             winpr_int_assert
    - functionName:    Stream_Write
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1187
      functionLinenumberEnd: 1196
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          77
      EdgeCount:       25
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_GetRemainingCapacity
        - Stream_Seek
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1190,4'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1191,4'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1192,4'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:1192,4'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1194,4'
          Dst:             Stream_Seek
    - functionName:    Stream_Write_UINT32_unchecked
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1087
      functionLinenumberEnd: 1094
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          68
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - winpr_Data_Write_UINT32
        - winpr_int_assert
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1088,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1089,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1090,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:1090,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1092,3'
          Dst:             winpr_Data_Write_UINT32
    - functionName:    WLog_BinaryAppender_Set
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/BinaryAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 182
      functionLinenumberEnd: 205
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          96
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - _strdup
        - strcmp
        - strnlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:186,17'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:189,7'
          Dst:             strcmp
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:191,30'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:195,12'
          Dst:             strcmp
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:197,30'
          Dst:             _strdup
    - functionName:    WLog_BinaryAppender_Free
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/BinaryAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 208
      functionLinenumberEnd: 218
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    WLog_BinaryAppender_WriteImageMessage
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/BinaryAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 177
      functionLinenumberEnd: 178
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          10
      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: 170
      functionLinenumberEnd: 171
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          10
      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: 105
      functionLinenumberEnd: 165
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         131
      ICount:          455
      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:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:125,19'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:126,23'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:127,21'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:136,6'
          Dst:             Stream_New
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:140,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:140,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:140,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:142,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:142,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:142,2'
          Dst:             Stream_Write_UINT32_unchecked
        - 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: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:148,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:148,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:149,2'
          Dst:             Stream_Write
        - 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:             Stream_SealLength
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:159,13'
          Dst:             Stream_Buffer
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:159,6'
          Dst:             fwrite
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:162,2'
          Dst:             Stream_Free
    - 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:    11
      BranchProfiles:  []
      Callsites:       []
    - functionName:    WLog_BinaryAppender_Close
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/BinaryAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 85
      functionLinenumberEnd: 101
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          61
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - fclose
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:96,9'
          Dst:             fclose
    - functionName:    WLog_BinaryAppender_Open
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/BinaryAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 82
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         29
      ICount:          174
      EdgeCount:       39
      CyclomaticComplexity: 12
      functionsReached:
        - GetCombinedPath
        - GetCurrentProcessId
        - GetKnownSubPath
        - UnixChangeFileMode
        - snprintf
        - winpr_PathFileExists
        - winpr_PathMakePath
        - winpr_fopen
      functionUses:    1
      BranchProfiles:  []
      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: 221
      functionLinenumberEnd: 236
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          65
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - calloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:222,60'
          Dst:             calloc
    - functionName:    WLog_CallbackAppender_Set
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/CallbackAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 153
      functionLinenumberEnd: 171
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          63
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/CallbackAppender.c:159,6'
          Dst:             strcmp
        - Src:             'winpr/libwinpr/utils/wlog/CallbackAppender.c:165,6'
          Dst:             strcmp
    - functionName:    WLog_CallbackAppender_Free
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/CallbackAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 174
      functionLinenumberEnd: 176
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    WLog_CallbackAppender_WritePacketMessage
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/CallbackAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 127
      functionLinenumberEnd: 150
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          105
      EdgeCount:       19
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Layout_GetMessagePrefix
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/CallbackAppender.c:128,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/CallbackAppender.c:133,2'
          Dst:             WLog_Layout_GetMessagePrefix
    - functionName:    WLog_CallbackAppender_WriteImageMessage
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/CallbackAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 123
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          105
      EdgeCount:       19
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Layout_GetMessagePrefix
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/CallbackAppender.c:101,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/CallbackAppender.c:106,2'
          Dst:             WLog_Layout_GetMessagePrefix
    - functionName:    WLog_CallbackAppender_WriteDataMessage
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/CallbackAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 96
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          93
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Layout_GetMessagePrefix
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/CallbackAppender.c:79,2'
          Dst:             WLog_Layout_GetMessagePrefix
    - functionName:    WLog_CallbackAppender_WriteMessage
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/CallbackAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 46
      functionLinenumberEnd: 70
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          105
      EdgeCount:       19
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Layout_GetMessagePrefix
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/CallbackAppender.c:47,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/CallbackAppender.c:52,2'
          Dst:             WLog_Layout_GetMessagePrefix
    - functionName:    WLog_CallbackAppender_Close
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/CallbackAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 40
      functionLinenumberEnd: 41
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          8
      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: 34
      functionLinenumberEnd: 35
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          8
      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: 179
      functionLinenumberEnd: 196
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          69
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - calloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/CallbackAppender.c:181,29'
          Dst:             calloc
    - functionName:    WLog_ConsoleAppender_Free
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/ConsoleAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 230
      functionLinenumberEnd: 240
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          40
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - Pcap_Close
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/ConsoleAppender.c:235,4'
          Dst:             Pcap_Close
    - functionName:    WLog_ConsoleAppender_Set
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/ConsoleAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 205
      functionLinenumberEnd: 227
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          108
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - strcmp
        - strnlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/ConsoleAppender.c:209,17'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/utils/wlog/ConsoleAppender.c:212,6'
          Dst:             strcmp
        - Src:             'winpr/libwinpr/utils/wlog/ConsoleAppender.c:215,7'
          Dst:             strcmp
        - Src:             'winpr/libwinpr/utils/wlog/ConsoleAppender.c:217,12'
          Dst:             strcmp
        - Src:             'winpr/libwinpr/utils/wlog/ConsoleAppender.c:219,12'
          Dst:             strcmp
        - Src:             'winpr/libwinpr/utils/wlog/ConsoleAppender.c:221,12'
          Dst:             strcmp
    - functionName:    WLog_ConsoleAppender_WritePacketMessage
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/ConsoleAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 184
      functionLinenumberEnd: 203
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          73
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - Pcap_Open
        - WLog_Message_GetOutputFileName
        - WLog_PacketMessage_Write
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/ConsoleAppender.c:192,24'
          Dst:             WLog_Message_GetOutputFileName
        - Src:             'winpr/libwinpr/utils/wlog/ConsoleAppender.c:193,43'
          Dst:             Pcap_Open
        - Src:             'winpr/libwinpr/utils/wlog/ConsoleAppender.c:198,10'
          Dst:             WLog_PacketMessage_Write
    - functionName:    WLog_ConsoleAppender_WriteImageMessage
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/ConsoleAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 163
      functionLinenumberEnd: 175
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          42
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_ImageMessage_Write
        - WLog_Message_GetOutputFileName
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/ConsoleAppender.c:168,23'
          Dst:             WLog_Message_GetOutputFileName
        - Src:             'winpr/libwinpr/utils/wlog/ConsoleAppender.c:170,2'
          Dst:             WLog_ImageMessage_Write
    - functionName:    WLog_ConsoleAppender_WriteDataMessage
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/ConsoleAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 143
      functionLinenumberEnd: 154
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          36
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_DataMessage_Write
        - WLog_Message_GetOutputFileName
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/ConsoleAppender.c:148,23'
          Dst:             WLog_Message_GetOutputFileName
        - Src:             'winpr/libwinpr/utils/wlog/ConsoleAppender.c:150,2'
          Dst:             WLog_DataMessage_Write
    - functionName:    WLog_ConsoleAppender_WriteMessage
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/ConsoleAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 55
      functionLinenumberEnd: 136
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          109
      EdgeCount:       19
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Layout_GetMessagePrefix
        - fprintf
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/ConsoleAppender.c:109,2'
          Branch Sides:    []
        - Branch String:   'winpr/libwinpr/utils/wlog/ConsoleAppender.c:118,4'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/ConsoleAppender.c:62,2'
          Dst:             WLog_Layout_GetMessagePrefix
        - Src:             'winpr/libwinpr/utils/wlog/ConsoleAppender.c:133,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:
        - ''
        - ''
      BBCount:         1
      ICount:          8
      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:
        - ''
        - ''
      BBCount:         1
      ICount:          8
      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: 243
      functionLinenumberEnd: 268
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          72
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - calloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/ConsoleAppender.c:245,28'
          Dst:             calloc
    - functionName:    WLog_UdpAppender_Set
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/UdpAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 125
      functionLinenumberEnd: 143
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          99
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - WLog_UdpAppender_Open
        - _strdup
        - strncmp
        - strnlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/UdpAppender.c:130,17'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/utils/wlog/UdpAppender.c:133,6'
          Dst:             strncmp
        - Src:             'winpr/libwinpr/utils/wlog/UdpAppender.c:141,22'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/utils/wlog/UdpAppender.c:142,43'
          Dst:             WLog_UdpAppender_Open
    - functionName:    strncmp
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    14
      BranchProfiles:  []
      Callsites:       []
    - 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:
        - ''
        - ''
      BBCount:         35
      ICount:          202
      EdgeCount:       43
      CyclomaticComplexity: 10
      functionsReached:
        - freeaddrinfo
        - getaddrinfo
        - strchr
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      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: 146
      functionLinenumberEnd: 162
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - closesocket
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/UdpAppender.c:155,4'
          Dst:             closesocket
    - functionName:    WLog_UdpAppender_WriteImageMessage
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/UdpAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 120
      functionLinenumberEnd: 121
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    WLog_UdpAppender_WriteDataMessage
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/UdpAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 114
      functionLinenumberEnd: 115
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    WLog_UdpAppender_WriteMessage
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/UdpAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 89
      functionLinenumberEnd: 110
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          134
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - WLog_Layout_GetMessagePrefix
        - _sendto
        - strnlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/UdpAppender.c:96,2'
          Dst:             WLog_Layout_GetMessagePrefix
        - Src:             'winpr/libwinpr/utils/wlog/UdpAppender.c:99,46'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/utils/wlog/UdpAppender.c:99,6'
          Dst:             _sendto
        - Src:             'winpr/libwinpr/utils/wlog/UdpAppender.c:103,19'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/utils/wlog/UdpAppender.c:102,6'
          Dst:             _sendto
        - Src:             'winpr/libwinpr/utils/wlog/UdpAppender.c:106,6'
          Dst:             _sendto
    - functionName:    WLog_UdpAppender_Close
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/UdpAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 83
      functionLinenumberEnd: 84
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          25
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    WLog_UdpAppender_New
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/UdpAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 165
      functionLinenumberEnd: 217
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          162
      EdgeCount:       28
      CyclomaticComplexity: 9
      functionsReached:
        - GetEnvironmentVariableA
        - WLog_UdpAppender_Open
        - _socket
        - _strdup
        - calloc
        - closesocket
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/UdpAppender.c:168,48'
          Dst:             calloc
        - Src:             'winpr/libwinpr/utils/wlog/UdpAppender.c:181,19'
          Dst:             _socket
        - Src:             'winpr/libwinpr/utils/wlog/UdpAppender.c:187,10'
          Dst:             GetEnvironmentVariableA
        - Src:             'winpr/libwinpr/utils/wlog/UdpAppender.c:196,7'
          Dst:             GetEnvironmentVariableA
        - Src:             'winpr/libwinpr/utils/wlog/UdpAppender.c:199,8'
          Dst:             WLog_UdpAppender_Open
        - Src:             'winpr/libwinpr/utils/wlog/UdpAppender.c:204,20'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/utils/wlog/UdpAppender.c:213,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:
        - ''
      BBCount:         12
      ICount:          52
      EdgeCount:       22
      CyclomaticComplexity: 12
      functionsReached: []
      functionUses:    3
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/SyslogAppender.c:33,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    WLog_SyslogAppender_Free
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/SyslogAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 109
      functionLinenumberEnd: 111
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      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: 94
      functionLinenumberEnd: 106
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          74
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - getSyslogLevel
        - syslog
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/SyslogAppender.c:100,16'
          Dst:             getSyslogLevel
        - Src:             'winpr/libwinpr/utils/wlog/SyslogAppender.c:102,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: 79
      functionLinenumberEnd: 90
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          68
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - getSyslogLevel
        - syslog
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/SyslogAppender.c:85,16'
          Dst:             getSyslogLevel
        - Src:             'winpr/libwinpr/utils/wlog/SyslogAppender.c:87,3'
          Dst:             syslog
    - functionName:    WLog_SyslogAppender_WriteMessage
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/SyslogAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 64
      functionLinenumberEnd: 75
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          68
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - getSyslogLevel
        - syslog
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/SyslogAppender.c:70,16'
          Dst:             getSyslogLevel
        - Src:             'winpr/libwinpr/utils/wlog/SyslogAppender.c:72,3'
          Dst:             syslog
    - functionName:    WLog_SyslogAppender_Close
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/SyslogAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 58
      functionLinenumberEnd: 59
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          25
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    WLog_SyslogAppender_Open
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/SyslogAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 53
      functionLinenumberEnd: 54
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          25
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    WLog_SyslogAppender_New
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/SyslogAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 114
      functionLinenumberEnd: 129
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          61
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - calloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/SyslogAppender.c:115,54'
          Dst:             calloc
    - functionName:    WINPR_HANDLE_IS_HANDLED
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/../handle/handle.h'
      linkageType:     InternalLinkage
      functionLinenumber: 122
      functionLinenumberEnd: 139
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          76
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - SetLastError
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/../handle/handle.h:134,3'
          Dst:             SetLastError
    - functionName:    ProcessCleanupHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 730
      functionLinenumberEnd: 746
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          109
      EdgeCount:       25
      CyclomaticComplexity: 6
      functionsReached:
        - waitpid
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/process.c:733,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/process.c:736,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: 720
      functionLinenumberEnd: 727
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ProcessHandleIsHandle
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/process.c:723,7'
          Dst:             ProcessHandleIsHandle
    - functionName:    ProcessHandleIsHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 715
      functionLinenumberEnd: 716
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WINPR_HANDLE_IS_HANDLED
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/process.c:716,9'
          Dst:             WINPR_HANDLE_IS_HANDLED
    - functionName:    pidfd_open
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 772
      functionLinenumberEnd: 805
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         25
      ICount:          118
      EdgeCount:       33
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - close
        - fcntl64
        - syscall
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/process.c:782,12'
          Dst:             syscall
        - Src:             'winpr/libwinpr/thread/process.c:783,16'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/thread/process.c:788,8'
          Dst:             syscall
        - Src:             'winpr/libwinpr/thread/process.c:792,11'
          Dst:             fcntl64
        - Src:             'winpr/libwinpr/thread/process.c:793,22'
          Dst:             fcntl64
        - Src:             'winpr/libwinpr/thread/process.c:795,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:    4
      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:    155
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fcntl64
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    20
      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:    29
      BranchProfiles:  []
      Callsites:       []
    - functionName:    winpr_Handle_GetInfo
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/../handle/handle.h'
      linkageType:     InternalLinkage
      functionLinenumber: 152
      functionLinenumberEnd: 171
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ProcessHandleCloseHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 703
      functionLinenumberEnd: 711
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          49
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - close
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/process.c:705,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/process.c:708,3'
          Dst:             close
    - functionName:    CreateProcessHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 808
      functionLinenumberEnd: 823
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          69
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - calloc
        - pidfd_open
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/process.c:810,28'
          Dst:             calloc
        - Src:             'winpr/libwinpr/thread/process.c:819,16'
          Dst:             pidfd_open
    - functionName:    winpr_Handle_getFd
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/../handle/handle.h'
      linkageType:     InternalLinkage
      functionLinenumber: 208
      functionLinenumberEnd: 219
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          72
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - winpr_Handle_GetInfo
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/../handle/handle.h:212,7'
          Dst:             winpr_Handle_GetInfo
    - functionName:    FindApplicationPath
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 101
      functionLinenumberEnd: 150
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          129
      EdgeCount:       27
      CyclomaticComplexity: 9
      functionsReached:
        - GetCombinedPath
        - GetEnvironmentVariableA
        - _strdup
        - strtok_s
        - winpr_PathFileExists
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/process.c:113,10'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/thread/process.c:115,10'
          Dst:             GetEnvironmentVariableA
        - Src:             'winpr/libwinpr/thread/process.c:118,10'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/thread/process.c:125,6'
          Dst:             GetEnvironmentVariableA
        - Src:             'winpr/libwinpr/thread/process.c:132,9'
          Dst:             strtok_s
        - Src:             'winpr/libwinpr/thread/process.c:136,14'
          Dst:             GetCombinedPath
        - Src:             'winpr/libwinpr/thread/process.c:138,7'
          Dst:             winpr_PathFileExists
        - Src:             'winpr/libwinpr/thread/process.c:145,10'
          Dst:             strtok_s
    - functionName:    TerminateProcess
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 689
      functionLinenumberEnd: 700
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          57
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - kill
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/process.c:696,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: 684
      functionLinenumberEnd: 685
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - getpid
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/process.c:685,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: 678
      functionLinenumberEnd: 680
      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:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/process.c:679,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 323
      functionLinenumberEnd: 335
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          65
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintTextMessageVA
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:326,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:328,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:332,4'
          Dst:             WLog_PrintTextMessageVA
    - functionName:    GetExitCodeProcess
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 663
      functionLinenumberEnd: 675
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    CreateProcessWithTokenW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 651
      functionLinenumberEnd: 653
      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:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/process.c:652,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    CreateProcessWithTokenA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 637
      functionLinenumberEnd: 640
      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:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          37
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - CreateProcessExA
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/process.c:638,9'
          Dst:             CreateProcessExA
    - functionName:    CreateProcessExA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 162
      functionLinenumberEnd: 482
      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:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         163
      ICount:          936
      EdgeCount:       219
      CyclomaticComplexity: 58
      functionsReached:
        - CommandLineToArgvA
        - CreateNoneHandle
        - CreateProcessHandle
        - EnvironmentBlockToEnvpA
        - FindApplicationPath
        - FreeEnvironmentStringsA
        - GetEnvironmentStrings
        - ProcessHandleCloseHandle
        - SetLastError
        - _exit
        - chdir
        - close
        - dup2
        - execve
        - fcntl64
        - fork
        - initgroups
        - pthread_sigmask
        - setgid
        - setuid
        - sigaction
        - sigemptyset
        - sigfillset
        - strlen
        - sysconf
        - winpr_Handle_getFd
        - winpr_asprintf
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/process.c:185,3'
          Dst:             winpr_asprintf
        - Src:             'winpr/libwinpr/thread/process.c:188,11'
          Dst:             CommandLineToArgvA
        - Src:             'winpr/libwinpr/thread/process.c:192,11'
          Dst:             CommandLineToArgvA
        - Src:             'winpr/libwinpr/thread/process.c:194,11'
          Dst:             CommandLineToArgvA
        - Src:             'winpr/libwinpr/thread/process.c:203,10'
          Dst:             EnvironmentBlockToEnvpA
        - Src:             'winpr/libwinpr/thread/process.c:207,26'
          Dst:             GetEnvironmentStrings
        - Src:             'winpr/libwinpr/thread/process.c:212,10'
          Dst:             EnvironmentBlockToEnvpA
        - Src:             'winpr/libwinpr/thread/process.c:218,13'
          Dst:             FindApplicationPath
        - Src:             'winpr/libwinpr/thread/process.c:242,9'
          Dst:             winpr_Handle_getFd
        - Src:             'winpr/libwinpr/thread/process.c:244,6'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/thread/process.c:252,2'
          Dst:             sigfillset
        - Src:             'winpr/libwinpr/thread/process.c:253,20'
          Dst:             pthread_sigmask
        - Src:             'winpr/libwinpr/thread/process.c:255,8'
          Dst:             fork
        - Src:             'winpr/libwinpr/thread/process.c:304,21'
          Dst:             winpr_Handle_getFd
        - Src:             'winpr/libwinpr/thread/process.c:314,3'
          Dst:             sigemptyset
        - Src:             'winpr/libwinpr/thread/process.c:317,4'
          Dst:             sigaction
        - Src:             'winpr/libwinpr/thread/process.c:320,3'
          Dst:             sigfillset
        - Src:             'winpr/libwinpr/thread/process.c:321,3'
          Dst:             pthread_sigmask
        - Src:             'winpr/libwinpr/thread/process.c:326,16'
          Dst:             winpr_Handle_getFd
        - Src:             'winpr/libwinpr/thread/process.c:329,5'
          Dst:             dup2
        - Src:             'winpr/libwinpr/thread/process.c:331,16'
          Dst:             winpr_Handle_getFd
        - Src:             'winpr/libwinpr/thread/process.c:334,5'
          Dst:             dup2
        - Src:             'winpr/libwinpr/thread/process.c:336,16'
          Dst:             winpr_Handle_getFd
        - Src:             'winpr/libwinpr/thread/process.c:339,5'
          Dst:             dup2
        - Src:             'winpr/libwinpr/thread/process.c:353,20'
          Dst:             sysconf
        - Src:             'winpr/libwinpr/thread/process.c:382,24'
          Dst:             fcntl64
        - Src:             'winpr/libwinpr/thread/process.c:388,5'
          Dst:             close
        - Src:             'winpr/libwinpr/thread/process.c:397,14'
          Dst:             setgid
        - Src:             'winpr/libwinpr/thread/process.c:404,6'
          Dst:             initgroups
        - Src:             'winpr/libwinpr/thread/process.c:410,14'
          Dst:             setuid
        - Src:             'winpr/libwinpr/thread/process.c:417,29'
          Dst:             strlen
        - Src:             'winpr/libwinpr/thread/process.c:419,13'
          Dst:             chdir
        - Src:             'winpr/libwinpr/thread/process.c:424,7'
          Dst:             execve
        - Src:             'winpr/libwinpr/thread/process.c:427,4'
          Dst:             _exit
        - Src:             'winpr/libwinpr/thread/process.c:435,12'
          Dst:             CreateProcessHandle
        - Src:             'winpr/libwinpr/thread/process.c:442,11'
          Dst:             CreateNoneHandle
        - Src:             'winpr/libwinpr/thread/process.c:446,3'
          Dst:             ProcessHandleCloseHandle
        - Src:             'winpr/libwinpr/thread/process.c:460,3'
          Dst:             pthread_sigmask
        - Src:             'winpr/libwinpr/thread/process.c:466,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:    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:    67
      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: 627
      functionLinenumberEnd: 629
      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:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          34
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/process.c:628,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    CreateProcessWithLogonA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 615
      functionLinenumberEnd: 617
      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:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          34
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/process.c:616,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    CreateProcessAsUserW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 603
      functionLinenumberEnd: 605
      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:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          34
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/process.c:604,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    CreateProcessAsUserA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 586
      functionLinenumberEnd: 589
      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:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          45
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - CreateProcessExA
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/process.c:587,9'
          Dst:             CreateProcessExA
    - functionName:    CreateProcessW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 504
      functionLinenumberEnd: 578
      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:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         46
      ICount:          318
      EdgeCount:       58
      CyclomaticComplexity: 14
      functionsReached:
        - ConvertWCharToUtf8Alloc
        - CreateProcessA
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/process.c:505,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/process.c:506,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/process.c:533,24'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/thread/process.c:539,20'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/thread/process.c:545,25'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/thread/process.c:551,29'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/thread/process.c:557,28'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/thread/process.c:563,26'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/thread/process.c:568,7'
          Dst:             CreateProcessA
    - functionName:    CreateProcessA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 489
      functionLinenumberEnd: 492
      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:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          42
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - CreateProcessExA
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/process.c:490,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:
        - ''
      BBCount:         3
      ICount:          15
      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:
        - ''
      BBCount:         3
      ICount:          15
      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:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      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:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      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:
        - ''
        - ''
      BBCount:         3
      ICount:          23
      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:
        - ''
      BBCount:         3
      ICount:          18
      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:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          25
      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:
        - ''
        - ''
      BBCount:         11
      ICount:          67
      EdgeCount:       11
      CyclomaticComplexity: 2
      functionsReached:
        - shutdown
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:1213,2'
          Branch Sides:    []
      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:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          35
      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:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          40
      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:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          37
      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:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          61
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - select
      functionUses:    0
      BranchProfiles:  []
      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:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          46
      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:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          34
      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:
        - ''
      BBCount:         3
      ICount:          15
      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:
        - ''
      BBCount:         9
      ICount:          34
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - ntohl
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      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:    2
      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:
        - ''
        - ''
      BBCount:         3
      ICount:          26
      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:
        - ''
      BBCount:         3
      ICount:          17
      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:
        - ''
      BBCount:         24
      ICount:          89
      EdgeCount:       27
      CyclomaticComplexity: 5
      functionsReached:
        - inet_addr
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - 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:             winpr_int_assert
    - functionName:    inet_addr
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    _htons
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/winsock/winsock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1112
      functionLinenumberEnd: 1113
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - short
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      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:
        - ''
      BBCount:         9
      ICount:          33
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - htonl
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      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:    2
      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:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          41
      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:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          35
      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:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          35
      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:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - connect
      functionUses:    0
      BranchProfiles:  []
      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:
        - ''
      BBCount:         3
      ICount:          23
      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:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - bind
      functionUses:    0
      BranchProfiles:  []
      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:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          108
      EdgeCount:       27
      CyclomaticComplexity: 5
      functionsReached:
        - accept
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      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:    1
      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:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         62
      ICount:          467
      EdgeCount:       85
      CyclomaticComplexity: 25
      functionsReached:
        - WSASetLastError
        - getnameinfo
        - inet_pton
        - ioctl
      functionUses:    0
      BranchProfiles:  []
      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:
        - ''
      BBCount:         47
      ICount:          273
      EdgeCount:       93
      CyclomaticComplexity: 48
      functionsReached:
        - __errno_location
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:319,2'
          Branch Sides:    []
      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:    9
      BranchProfiles:  []
      Callsites:       []
    - functionName:    getnameinfo
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    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:    5
      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:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          30
      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:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          31
      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:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          46
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - socket
      functionUses:    2
      BranchProfiles:  []
      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:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      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:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          77
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - fcntl64
      functionUses:    1
      BranchProfiles:  []
      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:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          92
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - SetEventFileDescriptor
        - _ioctlsocket
      functionUses:    0
      BranchProfiles:  []
      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:
        - ''
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - CloseHandle
        - SetLastError
      functionUses:    0
      BranchProfiles:  []
      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:
        - ''
      BBCount:         1
      ICount:          6
      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:
        - ''
      BBCount:         3
      ICount:          15
      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:  []
      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:          238
      EdgeCount:       95
      CyclomaticComplexity: 49
      functionsReached:
        - __errno_location
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:506,2'
          Branch Sides:    []
      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:
        - ''
        - ''
      BBCount:         9
      ICount:          39
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/winsock/winsock.c:304,2'
          Dst:             winpr_int_assert
    - functionName:    sspi_GetSecurityFunctionTableAByNameA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1030
      functionLinenumberEnd: 1042
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          56
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1035,7'
          Dst:             strcmp
    - functionName:    winpr_SetCredentialsAttributesA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1486
      functionLinenumberEnd: 1501
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          63
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
        - log_status_
        - sspi_GetSecurityFunctionTableAByHandle
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1487,40'
          Dst:             sspi_GetSecurityFunctionTableAByHandle
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1494,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1500,9'
          Dst:             log_status_
    - functionName:    sspi_GetSecurityFunctionTableAByHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1064
      functionLinenumberEnd: 1071
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          49
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - sspi_SecureHandleGetPackageId
      functionUses:    15
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1065,29'
          Dst:             sspi_SecureHandleGetPackageId
    - functionName:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 323
      functionLinenumberEnd: 335
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          65
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintTextMessageVA
      functionUses:    30
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:326,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:328,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:332,4'
          Dst:             WLog_PrintTextMessageVA
    - functionName:    log_status_
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1286
      functionLinenumberEnd: 1301
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          69
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - GetSecurityStatusString
        - IsSecurityStatusError
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
      functionUses:    27
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1287,6'
          Dst:             IsSecurityStatusError
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1292,10'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1294,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1297,32'
          Dst:             GetSecurityStatusString
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1296,4'
          Dst:             WLog_PrintTextMessage
    - functionName:    sspi_SecureHandleGetPackageId
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 312
      functionLinenumberEnd: 317
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          57
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    winpr_SetContextAttributesA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1728
      functionLinenumberEnd: 1743
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          63
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
        - log_status_
        - sspi_GetSecurityFunctionTableAByHandle
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1729,40'
          Dst:             sspi_GetSecurityFunctionTableAByHandle
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1736,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1742,9'
          Dst:             log_status_
    - functionName:    winpr_ImportSecurityContextA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1410
      functionLinenumberEnd: 1425
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          63
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
        - log_status_
        - sspi_GetSecurityFunctionTableAByHandle
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1411,40'
          Dst:             sspi_GetSecurityFunctionTableAByHandle
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1418,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1424,9'
          Dst:             log_status_
    - functionName:    winpr_QuerySecurityPackageInfoA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1235
      functionLinenumberEnd: 1269
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          146
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - _strdup
        - sspi_ContextBufferAlloc
        - sspi_ContextBufferFree
        - strcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1240,7'
          Dst:             strcmp
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1244,22'
          Dst:             sspi_ContextBufferAlloc
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1253,25'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1254,28'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1258,5'
          Dst:             sspi_ContextBufferFree
    - functionName:    sspi_ContextBufferAlloc
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 152
      functionLinenumberEnd: 178
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          99
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - calloc
        - sspi_ContextBufferAlloc
        - sspi_ContextBufferAllocTableGrow
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:159,20'
          Dst:             calloc
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:173,6'
          Dst:             sspi_ContextBufferAllocTableGrow
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:177,9'
          Dst:             sspi_ContextBufferAlloc
    - functionName:    sspi_ContextBufferFree
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1088
      functionLinenumberEnd: 1115
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          93
      EdgeCount:       15
      CyclomaticComplexity: 3
      functionsReached:
        - FreeContextBuffer_EnumerateSecurityPackages
        - FreeContextBuffer_QuerySecurityPackageInfo
      functionUses:    7
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/sspi/sspi_winpr.c:1101,4'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1104,6'
          Dst:             FreeContextBuffer_EnumerateSecurityPackages
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1108,6'
          Dst:             FreeContextBuffer_QuerySecurityPackageInfo
    - functionName:    FreeContextBuffer_EnumerateSecurityPackages
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1186
      functionLinenumberEnd: 1200
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          59
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    FreeContextBuffer_QuerySecurityPackageInfo
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1272
      functionLinenumberEnd: 1281
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sspi_ContextBufferAllocTableGrow
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 138
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         8
      ICount:          63
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - realloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:126,41'
          Dst:             realloc
    - functionName:    winpr_QueryContextAttributesA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1671
      functionLinenumberEnd: 1685
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          60
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
        - log_status_
        - sspi_GetSecurityFunctionTableAByHandle
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1672,40'
          Dst:             sspi_GetSecurityFunctionTableAByHandle
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1679,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1684,9'
          Dst:             log_status_
    - functionName:    winpr_InitializeSecurityContextA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1632
      functionLinenumberEnd: 1649
      functionDepth:   0
      returnType:      int
      argCount:        12
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
        - int
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          87
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
        - log_status_
        - sspi_GetSecurityFunctionTableAByHandle
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1633,40'
          Dst:             sspi_GetSecurityFunctionTableAByHandle
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1640,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1648,9'
          Dst:             log_status_
    - functionName:    winpr_AcquireCredentialsHandleA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1332
      functionLinenumberEnd: 1348
      functionDepth:   0
      returnType:      int
      argCount:        9
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          78
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
        - log_status_
        - sspi_GetSecurityFunctionTableAByNameA
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1333,40'
          Dst:             sspi_GetSecurityFunctionTableAByNameA
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1340,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1347,9'
          Dst:             log_status_
    - functionName:    winpr_QueryCredentialsAttributesA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1447
      functionLinenumberEnd: 1461
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          60
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
        - log_status_
        - sspi_GetSecurityFunctionTableAByHandle
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1448,40'
          Dst:             sspi_GetSecurityFunctionTableAByHandle
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1455,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1460,9'
          Dst:             log_status_
    - functionName:    winpr_EnumerateSecurityPackagesA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1153
      functionLinenumberEnd: 1183
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          149
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - _strdup
        - sspi_ContextBufferAlloc
        - sspi_ContextBufferFree
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1157,20'
          Dst:             sspi_ContextBufferAlloc
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1170,30'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1171,33'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1175,4'
          Dst:             sspi_ContextBufferFree
    - functionName:    sspi_GetSecurityFunctionTableWByNameW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1045
      functionLinenumberEnd: 1057
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          56
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - _wcscmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1050,7'
          Dst:             _wcscmp
    - functionName:    sspi_GetSecurityFunctionTableWByHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1075
      functionLinenumberEnd: 1082
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          49
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - sspi_SecureHandleGetPackageId
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1076,29'
          Dst:             sspi_SecureHandleGetPackageId
    - functionName:    winpr_SetCredentialsAttributesW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1466
      functionLinenumberEnd: 1481
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          63
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
        - log_status_
        - sspi_GetSecurityFunctionTableWByHandle
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1467,40'
          Dst:             sspi_GetSecurityFunctionTableWByHandle
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1474,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1480,9'
          Dst:             log_status_
    - functionName:    winpr_SetContextAttributesW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1708
      functionLinenumberEnd: 1723
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          63
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
        - log_status_
        - sspi_GetSecurityFunctionTableWByHandle
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1709,40'
          Dst:             sspi_GetSecurityFunctionTableWByHandle
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1716,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1722,9'
          Dst:             log_status_
    - functionName:    winpr_DecryptMessage
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1768
      functionLinenumberEnd: 1783
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          63
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
        - log_status_
        - sspi_GetSecurityFunctionTableAByHandle
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1769,40'
          Dst:             sspi_GetSecurityFunctionTableAByHandle
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1776,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1782,9'
          Dst:             log_status_
    - functionName:    winpr_EncryptMessage
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1787
      functionLinenumberEnd: 1801
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          63
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
        - log_status_
        - sspi_GetSecurityFunctionTableAByHandle
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1788,40'
          Dst:             sspi_GetSecurityFunctionTableAByHandle
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1795,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1800,9'
          Dst:             log_status_
    - functionName:    winpr_QuerySecurityContextToken
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1689
      functionLinenumberEnd: 1703
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          57
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
        - log_status_
        - sspi_GetSecurityFunctionTableWByHandle
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1690,40'
          Dst:             sspi_GetSecurityFunctionTableWByHandle
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1697,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1702,9'
          Dst:             log_status_
    - functionName:    winpr_ImportSecurityContextW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1390
      functionLinenumberEnd: 1405
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          63
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
        - log_status_
        - sspi_GetSecurityFunctionTableWByHandle
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1391,40'
          Dst:             sspi_GetSecurityFunctionTableWByHandle
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1398,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1404,9'
          Dst:             log_status_
    - functionName:    winpr_ExportSecurityContext
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1353
      functionLinenumberEnd: 1368
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          63
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
        - log_status_
        - sspi_GetSecurityFunctionTableWByHandle
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1354,40'
          Dst:             sspi_GetSecurityFunctionTableWByHandle
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1361,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1367,9'
          Dst:             log_status_
    - functionName:    winpr_QuerySecurityPackageInfoW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1204
      functionLinenumberEnd: 1231
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          124
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - _wcscmp
        - _wcsdup
        - sspi_ContextBufferAlloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1209,7'
          Dst:             _wcscmp
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1213,22'
          Dst:             sspi_ContextBufferAlloc
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1222,25'
          Dst:             _wcsdup
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1223,28'
          Dst:             _wcsdup
    - functionName:    winpr_FreeContextBuffer
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1581
      functionLinenumberEnd: 1587
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          30
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sspi_ContextBufferFree
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1585,2'
          Dst:             sspi_ContextBufferFree
    - functionName:    winpr_VerifySignature
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1824
      functionLinenumberEnd: 1839
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          63
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
        - log_status_
        - sspi_GetSecurityFunctionTableAByHandle
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1825,40'
          Dst:             sspi_GetSecurityFunctionTableAByHandle
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1832,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1838,9'
          Dst:             log_status_
    - functionName:    winpr_MakeSignature
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1805
      functionLinenumberEnd: 1819
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          63
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
        - log_status_
        - sspi_GetSecurityFunctionTableAByHandle
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1806,40'
          Dst:             sspi_GetSecurityFunctionTableAByHandle
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1813,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1818,9'
          Dst:             log_status_
    - functionName:    winpr_RevertSecurityContext
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1746
      functionLinenumberEnd: 1761
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          54
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
        - log_status_
        - sspi_GetSecurityFunctionTableWByHandle
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1747,40'
          Dst:             sspi_GetSecurityFunctionTableWByHandle
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1754,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1760,9'
          Dst:             log_status_
    - functionName:    winpr_ImpersonateSecurityContext
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1590
      functionLinenumberEnd: 1604
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          54
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
        - log_status_
        - sspi_GetSecurityFunctionTableWByHandle
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1591,40'
          Dst:             sspi_GetSecurityFunctionTableWByHandle
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1598,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1603,9'
          Dst:             log_status_
    - functionName:    winpr_QueryContextAttributesW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1653
      functionLinenumberEnd: 1667
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          60
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
        - log_status_
        - sspi_GetSecurityFunctionTableWByHandle
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1654,40'
          Dst:             sspi_GetSecurityFunctionTableWByHandle
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1661,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1666,9'
          Dst:             log_status_
    - functionName:    winpr_ApplyControlToken
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1529
      functionLinenumberEnd: 1543
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          57
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
        - log_status_
        - sspi_GetSecurityFunctionTableAByHandle
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1530,40'
          Dst:             sspi_GetSecurityFunctionTableAByHandle
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1537,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1542,9'
          Dst:             log_status_
    - functionName:    winpr_DeleteSecurityContext
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1564
      functionLinenumberEnd: 1578
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          54
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
        - log_status_
        - sspi_GetSecurityFunctionTableAByHandle
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1565,40'
          Dst:             sspi_GetSecurityFunctionTableAByHandle
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1572,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1577,9'
          Dst:             log_status_
    - functionName:    winpr_CompleteAuthToken
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1547
      functionLinenumberEnd: 1561
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          57
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
        - log_status_
        - sspi_GetSecurityFunctionTableAByHandle
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1548,40'
          Dst:             sspi_GetSecurityFunctionTableAByHandle
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1555,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1560,9'
          Dst:             log_status_
    - functionName:    winpr_AcceptSecurityContext
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1509
      functionLinenumberEnd: 1525
      functionDepth:   0
      returnType:      int
      argCount:        9
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          78
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
        - log_status_
        - sspi_GetSecurityFunctionTableAByHandle
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1510,40'
          Dst:             sspi_GetSecurityFunctionTableAByHandle
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1517,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1524,9'
          Dst:             log_status_
    - functionName:    winpr_InitializeSecurityContextW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1610
      functionLinenumberEnd: 1626
      functionDepth:   0
      returnType:      int
      argCount:        12
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
        - int
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          87
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
        - log_status_
        - sspi_GetSecurityFunctionTableWByHandle
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1611,40'
          Dst:             sspi_GetSecurityFunctionTableWByHandle
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1618,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1625,9'
          Dst:             log_status_
    - functionName:    winpr_FreeCredentialsHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1371
      functionLinenumberEnd: 1385
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          54
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
        - log_status_
        - sspi_GetSecurityFunctionTableAByHandle
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1372,40'
          Dst:             sspi_GetSecurityFunctionTableAByHandle
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1379,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1384,9'
          Dst:             log_status_
    - functionName:    winpr_AcquireCredentialsHandleW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1310
      functionLinenumberEnd: 1326
      functionDepth:   0
      returnType:      int
      argCount:        9
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          78
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
        - log_status_
        - sspi_GetSecurityFunctionTableWByNameW
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1311,40'
          Dst:             sspi_GetSecurityFunctionTableWByNameW
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1318,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1325,9'
          Dst:             log_status_
    - functionName:    winpr_QueryCredentialsAttributesW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1429
      functionLinenumberEnd: 1443
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          60
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
        - log_status_
        - sspi_GetSecurityFunctionTableWByHandle
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1430,40'
          Dst:             sspi_GetSecurityFunctionTableWByHandle
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1437,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1442,9'
          Dst:             log_status_
    - functionName:    winpr_EnumerateSecurityPackagesW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1125
      functionLinenumberEnd: 1149
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          123
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - _wcsdup
        - sspi_ContextBufferAlloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1129,20'
          Dst:             sspi_ContextBufferAlloc
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1142,30'
          Dst:             _wcsdup
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1143,33'
          Dst:             _wcsdup
    - functionName:    WINPR_init
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 975
      functionLinenumberEnd: 983
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         7
      ICount:          40
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - InitializeConstWCharFromUtf8
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:980,3'
          Dst:             InitializeConstWCharFromUtf8
    - functionName:    sspi_ContextBufferAllocTableNew
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 101
      functionLinenumberEnd: 113
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - calloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:107,65'
          Dst:             calloc
    - functionName:    sspi_CloneSecNtlmSettings
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1916
      functionLinenumberEnd: 1972
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         41
      ICount:          224
      EdgeCount:       56
      CyclomaticComplexity: 17
      functionsReached:
        - WLog_Print_dbg_tag
        - sspi_AllocSecNtlmSettings
        - sspi_CloneSecSettingsString
        - sspi_FreeSecNtlmSettings
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1923,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1930,38'
          Dst:             sspi_AllocSecNtlmSettings
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1936,8'
          Dst:             sspi_CloneSecSettingsString
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1943,8'
          Dst:             sspi_CloneSecSettingsString
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1948,8'
          Dst:             sspi_CloneSecSettingsString
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1953,8'
          Dst:             sspi_CloneSecSettingsString
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1958,8'
          Dst:             sspi_CloneSecSettingsString
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1963,8'
          Dst:             sspi_CloneSecSettingsString
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1970,2'
          Dst:             sspi_FreeSecNtlmSettings
    - functionName:    winpr_InitSecurityInterfaceA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1911
      functionLinenumberEnd: 1912
      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_InitSecurityInterfaceW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1906
      functionLinenumberEnd: 1907
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          4
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sspi_ContextBufferAllocTableFree
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 141
      functionLinenumberEnd: 149
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          30
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:143,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    sspi_GlobalFinish
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1025
      functionLinenumberEnd: 1027
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sspi_ContextBufferAllocTableFree
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1026,2'
          Dst:             sspi_ContextBufferAllocTableFree
    - functionName:    sspi_init
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 988
      functionLinenumberEnd: 1003
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          80
      EdgeCount:       22
      CyclomaticComplexity: 8
      functionsReached:
        - CREDSSP_init
        - KERBEROS_init
        - NEGOTIATE_init
        - NTLM_init
        - SCHANNEL_init
        - WINPR_init
        - sspi_ContextBufferAllocTableNew
        - winpr_InitializeSSL
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:989,7'
          Dst:             winpr_InitializeSSL
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:991,2'
          Dst:             sspi_ContextBufferAllocTableNew
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:992,7'
          Dst:             SCHANNEL_init
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:994,7'
          Dst:             KERBEROS_init
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:996,7'
          Dst:             NTLM_init
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:998,7'
          Dst:             CREDSSP_init
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1000,7'
          Dst:             NEGOTIATE_init
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1002,9'
          Dst:             WINPR_init
    - functionName:    sspi_GlobalInit
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1006
      functionLinenumberEnd: 1022
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          26
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_Print_dbg_tag
        - sspi_init
        - winpr_InitOnceExecuteOnce
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1020,7'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1020,7'
          Dst:             sspi_init
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:1021,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    sspi_FindSecBuffer
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 959
      functionLinenumberEnd: 971
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          56
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    33
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sspi_CopyAuthIdentity
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 860
      functionLinenumberEnd: 956
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         31
      ICount:          295
      EdgeCount:       43
      CyclomaticComplexity: 14
      functionsReached:
        - calloc
        - sspi_FreeAuthIdentity
        - sspi_GetAuthIdentityFlags
        - sspi_GetAuthIdentityPasswordA
        - sspi_GetAuthIdentityPasswordW
        - sspi_GetAuthIdentityUserDomainA
        - sspi_GetAuthIdentityUserDomainW
        - sspi_SetAuthIdentityA
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:873,2'
          Dst:             sspi_FreeAuthIdentity
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:875,18'
          Dst:             sspi_GetAuthIdentityFlags
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:881,8'
          Dst:             sspi_GetAuthIdentityUserDomainA
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:887,8'
          Dst:             sspi_GetAuthIdentityPasswordA
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:892,12'
          Dst:             sspi_SetAuthIdentityA
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:904,7'
          Dst:             sspi_GetAuthIdentityUserDomainW
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:909,7'
          Dst:             sspi_GetAuthIdentityPasswordW
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:919,29'
          Dst:             calloc
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:932,31'
          Dst:             calloc
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:945,33'
          Dst:             calloc
    - functionName:    sspi_GetAuthIdentityFlags
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 442
      functionLinenumberEnd: 465
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          66
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - sspi_GetAuthIdentityVersion
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:449,12'
          Dst:             sspi_GetAuthIdentityVersion
    - functionName:    sspi_GetAuthIdentityUserDomainA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 509
      functionLinenumberEnd: 545
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          142
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - sspi_GetAuthIdentityVersion
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:515,12'
          Dst:             sspi_GetAuthIdentityVersion
    - functionName:    sspi_GetAuthIdentityPasswordA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 579
      functionLinenumberEnd: 605
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          82
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - sspi_GetAuthIdentityVersion
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:585,12'
          Dst:             sspi_GetAuthIdentityVersion
    - functionName:    sspi_SetAuthIdentityA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 396
      functionLinenumberEnd: 420
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          94
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - ConvertUtf8ToWCharAlloc
        - sspi_SetAuthIdentityWithLengthW
        - zfree
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:406,17'
          Dst:             ConvertUtf8ToWCharAlloc
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:409,19'
          Dst:             ConvertUtf8ToWCharAlloc
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:412,21'
          Dst:             ConvertUtf8ToWCharAlloc
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:414,7'
          Dst:             sspi_SetAuthIdentityWithLengthW
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:417,2'
          Dst:             zfree
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:418,2'
          Dst:             zfree
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:419,2'
          Dst:             zfree
    - functionName:    sspi_GetAuthIdentityUserDomainW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 469
      functionLinenumberEnd: 505
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          144
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - sspi_GetAuthIdentityVersion
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:475,12'
          Dst:             sspi_GetAuthIdentityVersion
    - functionName:    sspi_GetAuthIdentityPasswordW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 549
      functionLinenumberEnd: 575
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          82
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - sspi_GetAuthIdentityVersion
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:555,12'
          Dst:             sspi_GetAuthIdentityVersion
    - functionName:    sspi_GetAuthIdentityVersion
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 424
      functionLinenumberEnd: 439
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          45
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sspi_SetAuthIdentityWithLengthW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 369
      functionLinenumberEnd: 385
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          101
      EdgeCount:       19
      CyclomaticComplexity: 5
      functionsReached:
        - copy
        - sspi_FreeAuthIdentity
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:370,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:371,2'
          Dst:             sspi_FreeAuthIdentity
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:375,7'
          Dst:             copy
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:378,7'
          Dst:             copy
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:381,7'
          Dst:             copy
    - functionName:    zfree
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 388
      functionLinenumberEnd: 392
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          32
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    copy
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 341
      functionLinenumberEnd: 364
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         51
      ICount:          197
      EdgeCount:       60
      CyclomaticComplexity: 11
      functionsReached:
        - calloc
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:342,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:343,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:357,9'
          Dst:             calloc
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:362,12'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:362,12'
          Dst:             winpr_int_assert
    - functionName:    sspi_CopyAuthPackageListA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 799
      functionLinenumberEnd: 856
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         33
      ICount:          200
      EdgeCount:       44
      CyclomaticComplexity: 13
      functionsReached:
        - ConvertWCharNToUtf8Alloc
        - _strdup
        - sspi_GetAuthIdentityFlags
        - sspi_GetAuthIdentityVersion
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:812,12'
          Dst:             sspi_GetAuthIdentityVersion
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:813,18'
          Dst:             sspi_GetAuthIdentityFlags
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:826,18'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:846,18'
          Dst:             ConvertWCharNToUtf8Alloc
    - functionName:    sspi_CopyAuthIdentityFieldsW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 702
      functionLinenumberEnd: 796
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         70
      ICount:          347
      EdgeCount:       98
      CyclomaticComplexity: 30
      functionsReached:
        - ConvertUtf8NToWCharAlloc
        - sspi_GetAuthIdentityFlags
        - sspi_GetAuthIdentityPasswordA
        - sspi_GetAuthIdentityPasswordW
        - sspi_GetAuthIdentityUserDomainA
        - sspi_GetAuthIdentityUserDomainW
        - winpr_wcsndup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:719,25'
          Dst:             sspi_GetAuthIdentityFlags
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:723,8'
          Dst:             sspi_GetAuthIdentityUserDomainA
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:727,8'
          Dst:             sspi_GetAuthIdentityPasswordA
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:732,17'
          Dst:             ConvertUtf8NToWCharAlloc
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:741,17'
          Dst:             ConvertUtf8NToWCharAlloc
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:749,17'
          Dst:             ConvertUtf8NToWCharAlloc
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:760,8'
          Dst:             sspi_GetAuthIdentityUserDomainW
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:764,8'
          Dst:             sspi_GetAuthIdentityPasswordW
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:769,13'
          Dst:             winpr_wcsndup
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:777,15'
          Dst:             winpr_wcsndup
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:785,17'
          Dst:             winpr_wcsndup
    - functionName:    sspi_CopyAuthIdentityFieldsA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 609
      functionLinenumberEnd: 698
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         70
      ICount:          332
      EdgeCount:       98
      CyclomaticComplexity: 30
      functionsReached:
        - ConvertWCharNToUtf8Alloc
        - _strdup
        - sspi_GetAuthIdentityFlags
        - sspi_GetAuthIdentityPasswordA
        - sspi_GetAuthIdentityPasswordW
        - sspi_GetAuthIdentityUserDomainA
        - sspi_GetAuthIdentityUserDomainW
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:626,25'
          Dst:             sspi_GetAuthIdentityFlags
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:630,8'
          Dst:             sspi_GetAuthIdentityUserDomainA
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:634,8'
          Dst:             sspi_GetAuthIdentityPasswordA
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:639,13'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:647,15'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:655,17'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:665,8'
          Dst:             sspi_GetAuthIdentityUserDomainW
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:669,8'
          Dst:             sspi_GetAuthIdentityPasswordW
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:674,13'
          Dst:             ConvertWCharNToUtf8Alloc
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:681,15'
          Dst:             ConvertWCharNToUtf8Alloc
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:688,17'
          Dst:             ConvertWCharNToUtf8Alloc
    - functionName:    sspi_SetAuthIdentityW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 334
      functionLinenumberEnd: 337
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          66
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - _wcslen
        - sspi_SetAuthIdentityWithLengthW
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:335,64'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:336,50'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:337,52'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:335,9'
          Dst:             sspi_SetAuthIdentityWithLengthW
    - functionName:    sspi_SecureHandleFree
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 328
      functionLinenumberEnd: 330
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sspi_SecureHandleSetPackageId
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 320
      functionLinenumberEnd: 325
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          25
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sspi_SecureHandleSetUpperPointer
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 304
      functionLinenumberEnd: 309
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          25
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    10
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sspi_SecureHandleGetUpperPointer
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 293
      functionLinenumberEnd: 301
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          61
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sspi_SecureHandleSetLowerPointer
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 285
      functionLinenumberEnd: 290
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          25
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    17
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sspi_SecureHandleInvalidate
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 276
      functionLinenumberEnd: 282
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          23
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    11
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sspi_SecureHandleGetLowerPointer
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 265
      functionLinenumberEnd: 273
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          61
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    54
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sspi_SecureHandleAlloc
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 254
      functionLinenumberEnd: 262
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - calloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:255,34'
          Dst:             calloc
    - functionName:    sspi_SecBufferFree
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 241
      functionLinenumberEnd: 251
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    20
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sspi_SecBufferAlloc
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 227
      functionLinenumberEnd: 238
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - calloc
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:231,24'
          Dst:             calloc
    - functionName:    sspi_CredentialsFree
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 197
      functionLinenumberEnd: 224
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          148
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - sspi_FreeSecNtlmSettings
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:221,2'
          Dst:             sspi_FreeSecNtlmSettings
    - functionName:    sspi_CredentialsNew
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 181
      functionLinenumberEnd: 194
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         8
      ICount:          46
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - calloc
        - sspi_AllocSecNtlmSettings
        - sspi_CredentialsFree
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:182,53'
          Dst:             calloc
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:186,32'
          Dst:             sspi_AllocSecNtlmSettings
        - Src:             'winpr/libwinpr/sspi/sspi_winpr.c:189,3'
          Dst:             sspi_CredentialsFree
    - functionName:    sspi_CloneSecSettingsString
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1029
      functionLinenumberEnd: 1040
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          60
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - _strdup
        - winpr_int_assert
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi.c:1030,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/sspi.c:1035,11'
          Dst:             _strdup
    - functionName:    sspi_AllocSecKerberosSettings
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1020
      functionLinenumberEnd: 1026
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - calloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi.c:1021,45'
          Dst:             calloc
    - functionName:    sspi_FreeSecKerberosSettings
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1007
      functionLinenumberEnd: 1017
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          50
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sspi_AllocSecNtlmSettings
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 998
      functionLinenumberEnd: 1004
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - calloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi.c:999,41'
          Dst:             calloc
    - functionName:    sspi_FreeSecNtlmSettings
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 985
      functionLinenumberEnd: 995
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          50
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    zfree
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 964
      functionLinenumberEnd: 968
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sspi_FreeAuthIdentity
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 971
      functionLinenumberEnd: 982
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          64
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - zfree
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi.c:976,2'
          Dst:             zfree
        - Src:             'winpr/libwinpr/sspi/sspi.c:977,2'
          Dst:             zfree
        - Src:             'winpr/libwinpr/sspi/sspi.c:978,2'
          Dst:             zfree
    - functionName:    sspi_VerifySignature
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 950
      functionLinenumberEnd: 959
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          104
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - GetSecurityStatusString
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - WLog_Print_dbg_tag
        - sspi_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi.c:951,27'
          Dst:             sspi_init
        - Src:             'winpr/libwinpr/sspi/sspi.c:954,11'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi.c:956,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/sspi/sspi.c:956,2'
          Dst:             GetSecurityStatusString
        - Src:             'winpr/libwinpr/sspi/sspi.c:956,2'
          Dst:             WLog_PrintTextMessage
    - functionName:    sspi_init
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 526
      functionLinenumberEnd: 537
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         18
      ICount:          65
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - InitializeSspiModuleInt
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - winpr_InitOnceExecuteOnce
      functionUses:    30
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi.c:527,7'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/sspi/sspi.c:527,7'
          Dst:             InitializeSspiModuleInt
        - Src:             'winpr/libwinpr/sspi/sspi.c:532,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/sspi/sspi.c:532,3'
          Dst:             WLog_PrintTextMessage
    - functionName:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 323
      functionLinenumberEnd: 335
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          65
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintTextMessageVA
      functionUses:    29
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:326,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:328,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:332,4'
          Dst:             WLog_PrintTextMessageVA
    - functionName:    GetSecurityStatusString
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 218
      functionLinenumberEnd: 477
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         90
      ICount:          447
      EdgeCount:       179
      CyclomaticComplexity: 91
      functionsReached:
        - NtStatus2Tag
      functionUses:    36
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/sspi/sspi.c:219,2'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi.c:476,9'
          Dst:             NtStatus2Tag
    - functionName:    InitializeSspiModuleInt
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 177
      functionLinenumberEnd: 214
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_Get
        - sspi_GlobalInit
        - winpr_InitSecurityInterfaceA
        - winpr_InitSecurityInterfaceW
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi.c:186,2'
          Dst:             sspi_GlobalInit
        - Src:             'winpr/libwinpr/sspi/sspi.c:187,10'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/sspi/sspi.c:210,13'
          Dst:             winpr_InitSecurityInterfaceW
        - Src:             'winpr/libwinpr/sspi/sspi.c:211,13'
          Dst:             winpr_InitSecurityInterfaceA
    - functionName:    sspi_MakeSignature
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 937
      functionLinenumberEnd: 946
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          104
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - GetSecurityStatusString
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - WLog_Print_dbg_tag
        - sspi_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi.c:938,27'
          Dst:             sspi_init
        - Src:             'winpr/libwinpr/sspi/sspi.c:941,11'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi.c:943,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/sspi/sspi.c:943,2'
          Dst:             GetSecurityStatusString
        - Src:             'winpr/libwinpr/sspi/sspi.c:943,2'
          Dst:             WLog_PrintTextMessage
    - functionName:    sspi_EncryptMessage
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 924
      functionLinenumberEnd: 933
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          104
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - GetSecurityStatusString
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - WLog_Print_dbg_tag
        - sspi_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi.c:925,27'
          Dst:             sspi_init
        - Src:             'winpr/libwinpr/sspi/sspi.c:928,11'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi.c:930,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/sspi/sspi.c:930,2'
          Dst:             GetSecurityStatusString
        - Src:             'winpr/libwinpr/sspi/sspi.c:930,2'
          Dst:             WLog_PrintTextMessage
    - functionName:    sspi_DecryptMessage
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 911
      functionLinenumberEnd: 920
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          104
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - GetSecurityStatusString
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - WLog_Print_dbg_tag
        - sspi_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi.c:912,27'
          Dst:             sspi_init
        - Src:             'winpr/libwinpr/sspi/sspi.c:915,11'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi.c:917,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/sspi/sspi.c:917,2'
          Dst:             GetSecurityStatusString
        - Src:             'winpr/libwinpr/sspi/sspi.c:917,2'
          Dst:             WLog_PrintTextMessage
    - functionName:    sspi_RevertSecurityContext
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 897
      functionLinenumberEnd: 905
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          95
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - GetSecurityStatusString
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - WLog_Print_dbg_tag
        - sspi_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi.c:898,27'
          Dst:             sspi_init
        - Src:             'winpr/libwinpr/sspi/sspi.c:901,11'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi.c:902,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/sspi/sspi.c:902,2'
          Dst:             GetSecurityStatusString
        - Src:             'winpr/libwinpr/sspi/sspi.c:902,2'
          Dst:             WLog_PrintTextMessage
    - functionName:    sspi_SetContextAttributesA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 885
      functionLinenumberEnd: 894
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          104
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - GetSecurityStatusString
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - WLog_Print_dbg_tag
        - sspi_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi.c:886,27'
          Dst:             sspi_init
        - Src:             'winpr/libwinpr/sspi/sspi.c:889,11'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi.c:891,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/sspi/sspi.c:891,2'
          Dst:             GetSecurityStatusString
        - Src:             'winpr/libwinpr/sspi/sspi.c:891,2'
          Dst:             WLog_PrintTextMessage
    - functionName:    sspi_SetContextAttributesW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 872
      functionLinenumberEnd: 881
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          104
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - GetSecurityStatusString
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - WLog_Print_dbg_tag
        - sspi_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi.c:873,27'
          Dst:             sspi_init
        - Src:             'winpr/libwinpr/sspi/sspi.c:876,11'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi.c:878,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/sspi/sspi.c:878,2'
          Dst:             GetSecurityStatusString
        - Src:             'winpr/libwinpr/sspi/sspi.c:878,2'
          Dst:             WLog_PrintTextMessage
    - functionName:    sspi_QuerySecurityContextToken
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 859
      functionLinenumberEnd: 868
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          98
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - GetSecurityStatusString
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - WLog_Print_dbg_tag
        - sspi_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi.c:860,27'
          Dst:             sspi_init
        - Src:             'winpr/libwinpr/sspi/sspi.c:863,11'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi.c:865,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/sspi/sspi.c:865,2'
          Dst:             GetSecurityStatusString
        - Src:             'winpr/libwinpr/sspi/sspi.c:865,2'
          Dst:             WLog_PrintTextMessage
    - functionName:    sspi_QueryContextAttributesA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 847
      functionLinenumberEnd: 856
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          101
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - GetSecurityStatusString
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - WLog_Print_dbg_tag
        - sspi_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi.c:848,27'
          Dst:             sspi_init
        - Src:             'winpr/libwinpr/sspi/sspi.c:851,11'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi.c:853,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/sspi/sspi.c:853,2'
          Dst:             GetSecurityStatusString
        - Src:             'winpr/libwinpr/sspi/sspi.c:853,2'
          Dst:             WLog_PrintTextMessage
    - functionName:    sspi_QueryContextAttributesW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 834
      functionLinenumberEnd: 843
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          101
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - GetSecurityStatusString
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - WLog_Print_dbg_tag
        - sspi_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi.c:835,27'
          Dst:             sspi_init
        - Src:             'winpr/libwinpr/sspi/sspi.c:838,11'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi.c:840,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/sspi/sspi.c:840,2'
          Dst:             GetSecurityStatusString
        - Src:             'winpr/libwinpr/sspi/sspi.c:840,2'
          Dst:             WLog_PrintTextMessage
    - functionName:    sspi_InitializeSecurityContextA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 819
      functionLinenumberEnd: 830
      functionDepth:   0
      returnType:      int
      argCount:        12
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
        - int
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          128
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - GetSecurityStatusString
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - WLog_Print_dbg_tag
        - sspi_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi.c:820,27'
          Dst:             sspi_init
        - Src:             'winpr/libwinpr/sspi/sspi.c:824,6'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi.c:827,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/sspi/sspi.c:827,2'
          Dst:             GetSecurityStatusString
        - Src:             'winpr/libwinpr/sspi/sspi.c:827,2'
          Dst:             WLog_PrintTextMessage
    - functionName:    sspi_InitializeSecurityContextW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 802
      functionLinenumberEnd: 813
      functionDepth:   0
      returnType:      int
      argCount:        12
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
        - int
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          128
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - GetSecurityStatusString
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - WLog_Print_dbg_tag
        - sspi_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi.c:803,27'
          Dst:             sspi_init
        - Src:             'winpr/libwinpr/sspi/sspi.c:807,6'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi.c:810,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/sspi/sspi.c:810,2'
          Dst:             GetSecurityStatusString
        - Src:             'winpr/libwinpr/sspi/sspi.c:810,2'
          Dst:             WLog_PrintTextMessage
    - functionName:    sspi_ImpersonateSecurityContext
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 787
      functionLinenumberEnd: 796
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          95
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - GetSecurityStatusString
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - WLog_Print_dbg_tag
        - sspi_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi.c:788,27'
          Dst:             sspi_init
        - Src:             'winpr/libwinpr/sspi/sspi.c:792,6'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi.c:793,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/sspi/sspi.c:793,2'
          Dst:             GetSecurityStatusString
        - Src:             'winpr/libwinpr/sspi/sspi.c:793,2'
          Dst:             WLog_PrintTextMessage
    - functionName:    sspi_FreeContextBuffer
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 776
      functionLinenumberEnd: 784
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          95
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - GetSecurityStatusString
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - WLog_Print_dbg_tag
        - sspi_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi.c:777,27'
          Dst:             sspi_init
        - Src:             'winpr/libwinpr/sspi/sspi.c:780,11'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi.c:781,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/sspi/sspi.c:781,2'
          Dst:             GetSecurityStatusString
        - Src:             'winpr/libwinpr/sspi/sspi.c:781,2'
          Dst:             WLog_PrintTextMessage
    - functionName:    sspi_DeleteSecurityContext
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 765
      functionLinenumberEnd: 773
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          95
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - GetSecurityStatusString
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - WLog_Print_dbg_tag
        - sspi_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi.c:766,27'
          Dst:             sspi_init
        - Src:             'winpr/libwinpr/sspi/sspi.c:769,11'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi.c:770,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/sspi/sspi.c:770,2'
          Dst:             GetSecurityStatusString
        - Src:             'winpr/libwinpr/sspi/sspi.c:770,2'
          Dst:             WLog_PrintTextMessage
    - functionName:    sspi_CompleteAuthToken
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 753
      functionLinenumberEnd: 762
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          98
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - GetSecurityStatusString
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - WLog_Print_dbg_tag
        - sspi_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi.c:754,27'
          Dst:             sspi_init
        - Src:             'winpr/libwinpr/sspi/sspi.c:758,6'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi.c:759,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/sspi/sspi.c:759,2'
          Dst:             GetSecurityStatusString
        - Src:             'winpr/libwinpr/sspi/sspi.c:759,2'
          Dst:             WLog_PrintTextMessage
    - functionName:    sspi_ApplyControlToken
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 741
      functionLinenumberEnd: 750
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          98
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - GetSecurityStatusString
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - WLog_Print_dbg_tag
        - sspi_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi.c:742,27'
          Dst:             sspi_init
        - Src:             'winpr/libwinpr/sspi/sspi.c:746,6'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi.c:747,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/sspi/sspi.c:747,2'
          Dst:             GetSecurityStatusString
        - Src:             'winpr/libwinpr/sspi/sspi.c:747,2'
          Dst:             WLog_PrintTextMessage
    - functionName:    sspi_AcceptSecurityContext
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 728
      functionLinenumberEnd: 738
      functionDepth:   0
      returnType:      int
      argCount:        9
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          119
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - GetSecurityStatusString
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - WLog_Print_dbg_tag
        - sspi_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi.c:729,27'
          Dst:             sspi_init
        - Src:             'winpr/libwinpr/sspi/sspi.c:732,11'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi.c:735,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/sspi/sspi.c:735,2'
          Dst:             GetSecurityStatusString
        - Src:             'winpr/libwinpr/sspi/sspi.c:735,2'
          Dst:             WLog_PrintTextMessage
    - functionName:    sspi_QueryCredentialsAttributesA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 709
      functionLinenumberEnd: 718
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          101
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - GetSecurityStatusString
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - WLog_Print_dbg_tag
        - sspi_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi.c:710,27'
          Dst:             sspi_init
        - Src:             'winpr/libwinpr/sspi/sspi.c:713,11'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi.c:715,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/sspi/sspi.c:715,2'
          Dst:             GetSecurityStatusString
        - Src:             'winpr/libwinpr/sspi/sspi.c:715,2'
          Dst:             WLog_PrintTextMessage
    - functionName:    sspi_QueryCredentialsAttributesW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 696
      functionLinenumberEnd: 705
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          101
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - GetSecurityStatusString
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - WLog_Print_dbg_tag
        - sspi_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi.c:697,27'
          Dst:             sspi_init
        - Src:             'winpr/libwinpr/sspi/sspi.c:700,11'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi.c:702,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/sspi/sspi.c:702,2'
          Dst:             GetSecurityStatusString
        - Src:             'winpr/libwinpr/sspi/sspi.c:702,2'
          Dst:             WLog_PrintTextMessage
    - functionName:    sspi_ImportSecurityContextA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 683
      functionLinenumberEnd: 692
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          104
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - GetSecurityStatusString
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - WLog_Print_dbg_tag
        - sspi_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi.c:684,27'
          Dst:             sspi_init
        - Src:             'winpr/libwinpr/sspi/sspi.c:687,11'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi.c:689,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/sspi/sspi.c:689,2'
          Dst:             GetSecurityStatusString
        - Src:             'winpr/libwinpr/sspi/sspi.c:689,2'
          Dst:             WLog_PrintTextMessage
    - functionName:    sspi_ImportSecurityContextW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 669
      functionLinenumberEnd: 678
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          104
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - GetSecurityStatusString
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - WLog_Print_dbg_tag
        - sspi_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi.c:670,27'
          Dst:             sspi_init
        - Src:             'winpr/libwinpr/sspi/sspi.c:673,11'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi.c:675,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/sspi/sspi.c:675,2'
          Dst:             GetSecurityStatusString
        - Src:             'winpr/libwinpr/sspi/sspi.c:675,2'
          Dst:             WLog_PrintTextMessage
    - functionName:    sspi_FreeCredentialsHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 656
      functionLinenumberEnd: 664
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          95
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - GetSecurityStatusString
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - WLog_Print_dbg_tag
        - sspi_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi.c:657,27'
          Dst:             sspi_init
        - Src:             'winpr/libwinpr/sspi/sspi.c:660,11'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi.c:661,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/sspi/sspi.c:661,2'
          Dst:             GetSecurityStatusString
        - Src:             'winpr/libwinpr/sspi/sspi.c:661,2'
          Dst:             WLog_PrintTextMessage
    - functionName:    sspi_ExportSecurityContext
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 644
      functionLinenumberEnd: 653
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          104
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - GetSecurityStatusString
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - WLog_Print_dbg_tag
        - sspi_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi.c:645,27'
          Dst:             sspi_init
        - Src:             'winpr/libwinpr/sspi/sspi.c:648,11'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi.c:650,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/sspi/sspi.c:650,2'
          Dst:             GetSecurityStatusString
        - Src:             'winpr/libwinpr/sspi/sspi.c:650,2'
          Dst:             WLog_PrintTextMessage
    - functionName:    sspi_AcquireCredentialsHandleA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 630
      functionLinenumberEnd: 640
      functionDepth:   0
      returnType:      int
      argCount:        9
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          119
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - GetSecurityStatusString
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - WLog_Print_dbg_tag
        - sspi_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi.c:631,27'
          Dst:             sspi_init
        - Src:             'winpr/libwinpr/sspi/sspi.c:634,11'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi.c:637,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/sspi/sspi.c:637,2'
          Dst:             GetSecurityStatusString
        - Src:             'winpr/libwinpr/sspi/sspi.c:637,2'
          Dst:             WLog_PrintTextMessage
    - functionName:    sspi_AcquireCredentialsHandleW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 614
      functionLinenumberEnd: 624
      functionDepth:   0
      returnType:      int
      argCount:        9
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          119
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - GetSecurityStatusString
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - WLog_Print_dbg_tag
        - sspi_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi.c:615,27'
          Dst:             sspi_init
        - Src:             'winpr/libwinpr/sspi/sspi.c:618,11'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi.c:621,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/sspi/sspi.c:621,2'
          Dst:             GetSecurityStatusString
        - Src:             'winpr/libwinpr/sspi/sspi.c:621,2'
          Dst:             WLog_PrintTextMessage
    - functionName:    sspi_QuerySecurityPackageInfoA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 597
      functionLinenumberEnd: 606
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          98
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - GetSecurityStatusString
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - WLog_Print_dbg_tag
        - sspi_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi.c:598,27'
          Dst:             sspi_init
        - Src:             'winpr/libwinpr/sspi/sspi.c:601,11'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi.c:603,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/sspi/sspi.c:603,2'
          Dst:             GetSecurityStatusString
        - Src:             'winpr/libwinpr/sspi/sspi.c:603,2'
          Dst:             WLog_PrintTextMessage
    - functionName:    sspi_QuerySecurityPackageInfoW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 584
      functionLinenumberEnd: 593
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          98
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - GetSecurityStatusString
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - WLog_Print_dbg_tag
        - sspi_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi.c:585,27'
          Dst:             sspi_init
        - Src:             'winpr/libwinpr/sspi/sspi.c:588,11'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi.c:590,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/sspi/sspi.c:590,2'
          Dst:             GetSecurityStatusString
        - Src:             'winpr/libwinpr/sspi/sspi.c:590,2'
          Dst:             WLog_PrintTextMessage
    - functionName:    sspi_InitSecurityInterfaceA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 575
      functionLinenumberEnd: 580
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         13
      ICount:          47
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - InitializeSspiModuleInt
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi.c:576,7'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/sspi/sspi.c:576,7'
          Dst:             InitializeSspiModuleInt
        - Src:             'winpr/libwinpr/sspi/sspi.c:578,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/sspi/sspi.c:578,2'
          Dst:             WLog_PrintTextMessage
    - functionName:    sspi_InitSecurityInterfaceW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 567
      functionLinenumberEnd: 572
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         13
      ICount:          47
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - InitializeSspiModuleInt
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi.c:568,7'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/sspi/sspi.c:568,7'
          Dst:             InitializeSspiModuleInt
        - Src:             'winpr/libwinpr/sspi/sspi.c:570,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/sspi/sspi.c:570,2'
          Dst:             WLog_PrintTextMessage
    - functionName:    sspi_EnumerateSecurityPackagesA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 555
      functionLinenumberEnd: 564
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          98
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - GetSecurityStatusString
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - WLog_Print_dbg_tag
        - sspi_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi.c:556,27'
          Dst:             sspi_init
        - Src:             'winpr/libwinpr/sspi/sspi.c:559,11'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/sspi.c:561,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/sspi/sspi.c:561,2'
          Dst:             GetSecurityStatusString
        - Src:             'winpr/libwinpr/sspi/sspi.c:561,2'
          Dst:             WLog_PrintTextMessage
    - functionName:    sspi_EnumerateSecurityPackagesW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 542
      functionLinenumberEnd: 551
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          67
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - GetSecurityStatusString
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - sspi_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi.c:543,27'
          Dst:             sspi_init
        - Src:             'winpr/libwinpr/sspi/sspi.c:548,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/sspi/sspi.c:548,2'
          Dst:             GetSecurityStatusString
        - Src:             'winpr/libwinpr/sspi/sspi.c:548,2'
          Dst:             WLog_PrintTextMessage
    - functionName:    InitSecurityInterfaceExA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 514
      functionLinenumberEnd: 519
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          49
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - InitializeSspiModuleInt
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - winpr_InitOnceExecuteOnce
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi.c:515,7'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/sspi/sspi.c:515,7'
          Dst:             InitializeSspiModuleInt
        - Src:             'winpr/libwinpr/sspi/sspi.c:517,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/sspi/sspi.c:517,2'
          Dst:             WLog_PrintTextMessage
    - functionName:    InitSecurityInterfaceExW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 506
      functionLinenumberEnd: 511
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          49
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - InitializeSspiModuleInt
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - winpr_InitOnceExecuteOnce
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi.c:507,7'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/sspi/sspi.c:507,7'
          Dst:             InitializeSspiModuleInt
        - Src:             'winpr/libwinpr/sspi/sspi.c:509,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/sspi/sspi.c:509,2'
          Dst:             WLog_PrintTextMessage
    - functionName:    IsSecurityStatusError
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi.c'
      linkageType:     InternalLinkage
      functionLinenumber: 480
      functionLinenumberEnd: 502
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          63
      EdgeCount:       28
      CyclomaticComplexity: 15
      functionsReached: []
      functionUses:    9
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/sspi/sspi.c:483,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    ConvertMszUtf8NToWCharAlloc
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/unicode.c'
      linkageType:     InternalLinkage
      functionLinenumber: 644
      functionLinenumberEnd: 664
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          110
      EdgeCount:       27
      CyclomaticComplexity: 7
      functionsReached:
        - ConvertMszUtf8NToWChar
        - calloc
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crt/unicode.c:646,21'
          Dst:             ConvertMszUtf8NToWChar
        - Src:             'winpr/libwinpr/crt/unicode.c:651,8'
          Dst:             calloc
        - Src:             'winpr/libwinpr/crt/unicode.c:654,22'
          Dst:             ConvertMszUtf8NToWChar
        - Src:             'winpr/libwinpr/crt/unicode.c:660,2'
          Dst:             winpr_int_assert
    - functionName:    ConvertMszUtf8NToWChar
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/unicode.c'
      linkageType:     InternalLinkage
      functionLinenumber: 503
      functionLinenumberEnd: 524
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          108
      EdgeCount:       31
      CyclomaticComplexity: 8
      functionsReached:
        - MultiByteToWideChar
        - SetLastError
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crt/unicode.c:507,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/crt/unicode.c:511,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/crt/unicode.c:518,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:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          30
      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: 621
      functionLinenumberEnd: 641
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          110
      EdgeCount:       27
      CyclomaticComplexity: 7
      functionsReached:
        - ConvertUtf8NToWChar
        - calloc
        - winpr_int_assert
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crt/unicode.c:623,21'
          Dst:             ConvertUtf8NToWChar
        - Src:             'winpr/libwinpr/crt/unicode.c:628,8'
          Dst:             calloc
        - Src:             'winpr/libwinpr/crt/unicode.c:631,22'
          Dst:             ConvertUtf8NToWChar
        - Src:             'winpr/libwinpr/crt/unicode.c:637,2'
          Dst:             winpr_int_assert
    - functionName:    ConvertUtf8NToWChar
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/unicode.c'
      linkageType:     InternalLinkage
      functionLinenumber: 462
      functionLinenumberEnd: 500
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         44
      ICount:          208
      EdgeCount:       57
      CyclomaticComplexity: 15
      functionsReached:
        - MultiByteToWideChar
        - SetLastError
        - strnlen
        - winpr_int_assert
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crt/unicode.c:463,16'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/crt/unicode.c:468,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/crt/unicode.c:472,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/crt/unicode.c:484,17'
          Dst:             MultiByteToWideChar
    - functionName:    ConvertUtf8ToWCharAlloc
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/unicode.c'
      linkageType:     InternalLinkage
      functionLinenumber: 598
      functionLinenumberEnd: 618
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          106
      EdgeCount:       27
      CyclomaticComplexity: 7
      functionsReached:
        - ConvertUtf8ToWChar
        - calloc
        - winpr_int_assert
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crt/unicode.c:600,21'
          Dst:             ConvertUtf8ToWChar
        - Src:             'winpr/libwinpr/crt/unicode.c:605,8'
          Dst:             calloc
        - Src:             'winpr/libwinpr/crt/unicode.c:608,22'
          Dst:             ConvertUtf8ToWChar
        - Src:             'winpr/libwinpr/crt/unicode.c:614,2'
          Dst:             winpr_int_assert
    - functionName:    ConvertUtf8ToWChar
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/unicode.c'
      linkageType:     InternalLinkage
      functionLinenumber: 449
      functionLinenumberEnd: 459
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          61
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - ConvertUtf8NToWChar
        - strlen
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crt/unicode.c:457,21'
          Dst:             strlen
        - Src:             'winpr/libwinpr/crt/unicode.c:458,9'
          Dst:             ConvertUtf8NToWChar
    - functionName:    ConvertMszWCharNToUtf8Alloc
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/unicode.c'
      linkageType:     InternalLinkage
      functionLinenumber: 574
      functionLinenumberEnd: 595
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          110
      EdgeCount:       27
      CyclomaticComplexity: 7
      functionsReached:
        - ConvertMszWCharNToUtf8
        - calloc
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crt/unicode.c:576,21'
          Dst:             ConvertMszWCharNToUtf8
        - Src:             'winpr/libwinpr/crt/unicode.c:582,8'
          Dst:             calloc
        - Src:             'winpr/libwinpr/crt/unicode.c:585,22'
          Dst:             ConvertMszWCharNToUtf8
        - Src:             'winpr/libwinpr/crt/unicode.c:591,2'
          Dst:             winpr_int_assert
    - functionName:    ConvertMszWCharNToUtf8
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/unicode.c'
      linkageType:     InternalLinkage
      functionLinenumber: 425
      functionLinenumberEnd: 446
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          108
      EdgeCount:       31
      CyclomaticComplexity: 8
      functionsReached:
        - SetLastError
        - WideCharToMultiByte
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crt/unicode.c:429,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/crt/unicode.c:433,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/crt/unicode.c:440,17'
          Dst:             WideCharToMultiByte
    - functionName:    WideCharToMultiByte
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/unicode.c'
      linkageType:     InternalLinkage
      functionLinenumber: 207
      functionLinenumberEnd: 209
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - int
        - int
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          36
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - int_WideCharToMultiByte
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crt/unicode.c:208,9'
          Dst:             int_WideCharToMultiByte
    - functionName:    ConvertWCharNToUtf8Alloc
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/unicode.c'
      linkageType:     InternalLinkage
      functionLinenumber: 550
      functionLinenumberEnd: 571
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          110
      EdgeCount:       27
      CyclomaticComplexity: 7
      functionsReached:
        - ConvertWCharNToUtf8
        - calloc
        - winpr_int_assert
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crt/unicode.c:552,21'
          Dst:             ConvertWCharNToUtf8
        - Src:             'winpr/libwinpr/crt/unicode.c:558,8'
          Dst:             calloc
        - Src:             'winpr/libwinpr/crt/unicode.c:561,22'
          Dst:             ConvertWCharNToUtf8
        - Src:             'winpr/libwinpr/crt/unicode.c:567,2'
          Dst:             winpr_int_assert
    - functionName:    ConvertWCharNToUtf8
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/unicode.c'
      linkageType:     InternalLinkage
      functionLinenumber: 384
      functionLinenumberEnd: 422
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         45
      ICount:          209
      EdgeCount:       58
      CyclomaticComplexity: 15
      functionsReached:
        - SetLastError
        - WideCharToMultiByte
        - _wcsnlen
        - winpr_int_assert
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crt/unicode.c:389,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/crt/unicode.c:390,17'
          Dst:             _wcsnlen
        - Src:             'winpr/libwinpr/crt/unicode.c:394,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/crt/unicode.c:406,6'
          Dst:             WideCharToMultiByte
    - functionName:    ConvertWCharToUtf8Alloc
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/unicode.c'
      linkageType:     InternalLinkage
      functionLinenumber: 527
      functionLinenumberEnd: 547
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          106
      EdgeCount:       27
      CyclomaticComplexity: 7
      functionsReached:
        - ConvertWCharToUtf8
        - calloc
        - winpr_int_assert
      functionUses:    32
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crt/unicode.c:529,21'
          Dst:             ConvertWCharToUtf8
        - Src:             'winpr/libwinpr/crt/unicode.c:534,8'
          Dst:             calloc
        - Src:             'winpr/libwinpr/crt/unicode.c:537,22'
          Dst:             ConvertWCharToUtf8
        - Src:             'winpr/libwinpr/crt/unicode.c:543,2'
          Dst:             winpr_int_assert
    - functionName:    ConvertWCharToUtf8
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/unicode.c'
      linkageType:     InternalLinkage
      functionLinenumber: 371
      functionLinenumberEnd: 381
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          61
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - ConvertWCharNToUtf8
        - _wcslen
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crt/unicode.c:379,22'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/crt/unicode.c:380,9'
          Dst:             ConvertWCharNToUtf8
    - functionName:    _byteswap_ushort
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/crt.h'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 118
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - short
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ByteSwapUnicode
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/unicode.c'
      linkageType:     InternalLinkage
      functionLinenumber: 362
      functionLinenumberEnd: 367
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          68
      EdgeCount:       18
      CyclomaticComplexity: 4
      functionsReached:
        - _byteswap_ushort
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crt/unicode.c:363,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/crt/unicode.c:366,13'
          Dst:             _byteswap_ushort
    - functionName:    hex2bin
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 121
      functionLinenumberEnd: 128
      functionDepth:   0
      returnType:      char
      argCount:        1
      argTypes:
        - char
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          48
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    winpr_str_has_newlines
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 952
      functionLinenumberEnd: 979
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         26
      ICount:          109
      EdgeCount:       29
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/string.c:958,3'
          Branch Sides:    []
      Callsites:       []
    - functionName:    winpr_strnstr
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 928
      functionLinenumberEnd: 949
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         33
      ICount:          138
      EdgeCount:       39
      CyclomaticComplexity: 8
      functionsReached:
        - strlen
        - strncmp
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crt/string.c:929,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/crt/string.c:930,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/crt/string.c:937,28'
          Dst:             strlen
        - Src:             'winpr/libwinpr/crt/string.c:944,43'
          Dst:             strncmp
    - functionName:    wcsndup
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 916
      functionLinenumberEnd: 925
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          49
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - calloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crt/string.c:920,16'
          Dst:             calloc
    - functionName:    InitializeConstWCharFromUtf8
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 908
      functionLinenumberEnd: 912
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          61
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - ConvertUtf8ToWChar
        - winpr_int_assert
      functionUses:    17
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crt/string.c:909,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/crt/string.c:910,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/crt/string.c:911,8'
          Dst:             ConvertUtf8ToWChar
    - functionName:    GetLine
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 854
      functionLinenumberEnd: 891
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - getline
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crt/string.c:891,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: 837
      functionLinenumberEnd: 850
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          57
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - strpbrk
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crt/string.c:840,27'
          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: 782
      functionLinenumberEnd: 834
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         45
      ICount:          233
      EdgeCount:       50
      CyclomaticComplexity: 7
      functionsReached:
        - calloc
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/string.c:795,3'
          Branch Sides:    []
        - Branch String:   'winpr/libwinpr/crt/string.c:813,3'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/crt/string.c:783,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/crt/string.c:785,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/crt/string.c:805,14'
          Dst:             calloc
    - functionName:    ConvertLineEndingToLF
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 759
      functionLinenumberEnd: 778
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          122
      EdgeCount:       27
      CyclomaticComplexity: 5
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/string.c:766,3'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/crt/string.c:762,2'
          Dst:             winpr_int_assert
    - functionName:    IsCharLowerW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 749
      functionLinenumberEnd: 754
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - short
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          33
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    IsCharLowerA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 741
      functionLinenumberEnd: 746
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - char
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          33
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    IsCharUpperW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 733
      functionLinenumberEnd: 738
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - short
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          33
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    IsCharUpperA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 725
      functionLinenumberEnd: 730
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - char
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          33
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    IsCharAlphaNumericW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 716
      functionLinenumberEnd: 722
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - short
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          78
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    IsCharAlphaNumericA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 707
      functionLinenumberEnd: 713
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - char
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          78
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    IsCharAlphaW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 699
      functionLinenumberEnd: 704
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - short
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          56
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    IsCharAlphaA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 691
      functionLinenumberEnd: 696
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - char
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          56
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    CharLowerBuffA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 665
      functionLinenumberEnd: 676
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          85
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    CharLowerBuffW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 679
      functionLinenumberEnd: 687
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          68
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_Data_Get_UINT16
        - winpr_Data_Write_UINT16
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crt/string.c:682,17'
          Dst:             winpr_Data_Get_UINT16
        - Src:             'winpr/libwinpr/crt/string.c:684,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:
        - ''
      BBCount:         13
      ICount:          68
      EdgeCount:       14
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      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:
        - ''
        - ''
      BBCount:         9
      ICount:          48
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      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: 656
      functionLinenumberEnd: 662
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - CharLowerBuffW
        - _wcsnlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crt/string.c:657,21'
          Dst:             _wcsnlen
        - Src:             'winpr/libwinpr/crt/string.c:660,2'
          Dst:             CharLowerBuffW
    - functionName:    _wcsnlen
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 407
      functionLinenumberEnd: 418
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          65
      EdgeCount:       18
      CyclomaticComplexity: 4
      functionsReached:
        - winpr_int_assert
      functionUses:    19
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crt/string.c:408,2'
          Dst:             winpr_int_assert
    - functionName:    CharLowerA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 624
      functionLinenumberEnd: 653
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         24
      ICount:          141
      EdgeCount:       32
      CyclomaticComplexity: 10
      functionsReached:
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crt/string.c:630,11'
          Dst:             strlen
    - functionName:    CharUpperBuffW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 612
      functionLinenumberEnd: 620
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          68
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_Data_Get_UINT16
        - winpr_Data_Write_UINT16
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crt/string.c:615,17'
          Dst:             winpr_Data_Get_UINT16
        - Src:             'winpr/libwinpr/crt/string.c:617,3'
          Dst:             winpr_Data_Write_UINT16
    - functionName:    CharUpperBuffA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 598
      functionLinenumberEnd: 609
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          85
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    CharUpperW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 566
      functionLinenumberEnd: 595
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         24
      ICount:          141
      EdgeCount:       32
      CyclomaticComplexity: 10
      functionsReached:
        - _wcslen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crt/string.c:572,11'
          Dst:             _wcslen
    - functionName:    _wcslen
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 393
      functionLinenumberEnd: 401
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          49
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_int_assert
      functionUses:    26
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crt/string.c:396,2'
          Dst:             winpr_int_assert
    - functionName:    CharUpperA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 534
      functionLinenumberEnd: 563
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         24
      ICount:          141
      EdgeCount:       32
      CyclomaticComplexity: 10
      functionsReached:
        - strlen
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crt/string.c:540,11'
          Dst:             strlen
    - functionName:    wcstok_s
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 489
      functionLinenumberEnd: 521
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          143
      EdgeCount:       31
      CyclomaticComplexity: 9
      functionsReached:
        - _wcschr
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crt/string.c:498,22'
          Dst:             _wcschr
        - Src:             'winpr/libwinpr/crt/string.c:510,24'
          Dst:             _wcschr
    - functionName:    _wcschr
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 443
      functionLinenumberEnd: 455
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          63
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    strtok_s
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 484
      functionLinenumberEnd: 485
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strtok_r
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crt/string.c:485,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: 461
      functionLinenumberEnd: 481
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          65
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    _wcsstr
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 423
      functionLinenumberEnd: 438
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         23
      ICount:          100
      EdgeCount:       26
      CyclomaticComplexity: 5
      functionsReached:
        - _wcslen
        - _wcsncmp
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crt/string.c:424,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/crt/string.c:425,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/crt/string.c:430,27'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/crt/string.c:433,7'
          Dst:             _wcsncmp
    - functionName:    _wcsncmp
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 373
      functionLinenumberEnd: 388
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          119
      EdgeCount:       32
      CyclomaticComplexity: 6
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crt/string.c:374,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/crt/string.c:375,2'
          Dst:             winpr_int_assert
    - functionName:    _wcscmp
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 356
      functionLinenumberEnd: 370
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          101
      EdgeCount:       28
      CyclomaticComplexity: 5
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crt/string.c:357,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/crt/string.c:358,2'
          Dst:             winpr_int_assert
    - functionName:    _strnicmp
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 349
      functionLinenumberEnd: 350
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strncasecmp
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crt/string.c:350,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: 344
      functionLinenumberEnd: 345
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strcasecmp
      functionUses:    22
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crt/string.c:345,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: 331
      functionLinenumberEnd: 340
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          98
      EdgeCount:       24
      CyclomaticComplexity: 4
      functionsReached:
        - _wcslen
        - _wcsnlen
        - winpr_int_assert
      functionUses:    36
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crt/string.c:332,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/crt/string.c:333,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/crt/string.c:335,22'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/crt/string.c:336,22'
          Dst:             _wcsnlen
    - functionName:    _wcsdup
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 314
      functionLinenumberEnd: 328
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          63
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
        - _wcslen
        - calloc
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crt/string.c:318,15'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/crt/string.c:319,26'
          Dst:             calloc
        - Src:             'winpr/libwinpr/crt/string.c:325,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 323
      functionLinenumberEnd: 335
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          65
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintTextMessageVA
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:326,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:328,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:332,4'
          Dst:             WLog_PrintTextMessageVA
    - functionName:    _strdup
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 301
      functionLinenumberEnd: 311
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          42
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
        - strdup
      functionUses:    52
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crt/string.c:305,25'
          Dst:             strdup
        - Src:             'winpr/libwinpr/crt/string.c:308,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: 268
      functionLinenumberEnd: 296
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          100
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - calloc
        - vsnprintf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crt/string.c:275,21'
          Dst:             vsnprintf
        - Src:             'winpr/libwinpr/crt/string.c:280,14'
          Dst:             calloc
        - Src:             'winpr/libwinpr/crt/string.c:285,19'
          Dst:             vsnprintf
    - functionName:    winpr_asprintf
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 257
      functionLinenumberEnd: 263
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_vasprintf
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crt/string.c:261,11'
          Dst:             winpr_vasprintf
    - functionName:    winpr_str_append
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 239
      functionLinenumberEnd: 253
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          108
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - strncat
        - strnlen
      functionUses:    15
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crt/string.c:240,22'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/crt/string.c:241,21'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/crt/string.c:242,37'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/crt/string.c:249,3'
          Dst:             strncat
        - Src:             'winpr/libwinpr/crt/string.c:251,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:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    winpr_str_is_valid_url
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 210
      functionLinenumberEnd: 226
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          54
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - printf
        - regcomp
        - regexec
        - regfree
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crt/string.c:216,12'
          Dst:             regcomp
        - Src:             'winpr/libwinpr/crt/string.c:219,3'
          Dst:             printf
        - Src:             'winpr/libwinpr/crt/string.c:223,8'
          Dst:             regexec
        - Src:             'winpr/libwinpr/crt/string.c:224,2'
          Dst:             regfree
    - functionName:    regcomp
      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:    printf
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    regexec
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    regfree
      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:    winpr_str_is_valid_urlN
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 185
      functionLinenumberEnd: 196
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          59
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - strndup
        - winpr_str_is_valid_url
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crt/string.c:189,14'
          Dst:             strndup
        - Src:             'winpr/libwinpr/crt/string.c:193,18'
          Dst:             winpr_str_is_valid_url
    - 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:    escape
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 158
      functionLinenumberEnd: 167
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          50
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sprintf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crt/string.c:165,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: 170
      functionLinenumberEnd: 182
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          67
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - calloc
        - escape
        - strnlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crt/string.c:171,14'
          Dst:             calloc
        - Src:             'winpr/libwinpr/crt/string.c:176,25'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/crt/string.c:179,9'
          Dst:             escape
    - functionName:    unescape
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 132
      functionLinenumberEnd: 140
      functionDepth:   0
      returnType:      char
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          89
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __ctype_b_loc
        - hex2bin
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crt/string.c:133,25'
          Dst:             __ctype_b_loc
        - Src:             'winpr/libwinpr/crt/string.c:133,46'
          Dst:             __ctype_b_loc
        - Src:             'winpr/libwinpr/crt/string.c:136,15'
          Dst:             hex2bin
        - Src:             'winpr/libwinpr/crt/string.c:136,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: 143
      functionLinenumberEnd: 155
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          69
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - calloc
        - strnlen
        - unescape
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crt/string.c:144,14'
          Dst:             calloc
        - Src:             'winpr/libwinpr/crt/string.c:149,25'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/crt/string.c:152,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:
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          51
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - abort
        - winpr_log_backtrace_ex
      functionUses:    1307
      BranchProfiles:  []
      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_PrintTextMessage
        - Src:             'winpr/libwinpr/crt/assert.c:29,2'
          Dst:             winpr_log_backtrace_ex
        - Src:             'winpr/libwinpr/crt/assert.c:30,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:    winpr_ConvertUTF16toUTF8_Internal
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/unicode_builtin.c'
      linkageType:     InternalLinkage
      functionLinenumber: 164
      functionLinenumberEnd: 319
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         71
      ICount:          412
      EdgeCount:       86
      CyclomaticComplexity: 17
      functionsReached:
        - setWcharFrom
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:258,4'
          Branch Sides:    []
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:287,4'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/crt/unicode_builtin.c:179,8'
          Dst:             setWcharFrom
        - Src:             'winpr/libwinpr/crt/unicode_builtin.c:187,20'
          Dst:             setWcharFrom
    - functionName:    setWcharFrom
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/unicode_builtin.c'
      linkageType:     InternalLinkage
      functionLinenumber: 129
      functionLinenumberEnd: 143
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - short
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          7
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    isLegalUTF8
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/unicode_builtin.c'
      linkageType:     InternalLinkage
      functionLinenumber: 335
      functionLinenumberEnd: 405
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         46
      ICount:          228
      EdgeCount:       56
      CyclomaticComplexity: 12
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:339,2'
          Branch Sides:    []
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:361,4'
          Branch Sides:    []
      Callsites:       []
    - functionName:    winpr_ConvertUTF8toUTF16_Internal
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/unicode_builtin.c'
      linkageType:     InternalLinkage
      functionLinenumber: 414
      functionLinenumberEnd: 562
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         86
      ICount:          507
      EdgeCount:       105
      CyclomaticComplexity: 21
      functionsReached:
        - isLegalUTF8
        - setWcharFrom
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:442,3'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/crt/unicode_builtin.c:424,7'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/crt/unicode_builtin.c:424,7'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/crt/unicode_builtin.c:433,8'
          Dst:             isLegalUTF8
        - Src:             'winpr/libwinpr/crt/unicode_builtin.c:505,19'
          Dst:             setWcharFrom
        - Src:             'winpr/libwinpr/crt/unicode_builtin.c:513,18'
          Dst:             setWcharFrom
        - Src:             'winpr/libwinpr/crt/unicode_builtin.c:529,18'
          Dst:             setWcharFrom
        - Src:             'winpr/libwinpr/crt/unicode_builtin.c:548,17'
          Dst:             setWcharFrom
        - Src:             'winpr/libwinpr/crt/unicode_builtin.c:549,17'
          Dst:             setWcharFrom
    - functionName:    winpr_ConvertUTF16toUTF8
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/unicode_builtin.c'
      linkageType:     InternalLinkage
      functionLinenumber: 611
      functionLinenumberEnd: 650
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         36
      ICount:          191
      EdgeCount:       43
      CyclomaticComplexity: 9
      functionsReached:
        - SetLastError
        - _wcsnlen
        - winpr_ConvertUTF16toUTF8_Internal
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crt/unicode_builtin.c:620,17'
          Dst:             _wcsnlen
        - Src:             'winpr/libwinpr/crt/unicode_builtin.c:628,7'
          Dst:             winpr_ConvertUTF16toUTF8_Internal
        - Src:             'winpr/libwinpr/crt/unicode_builtin.c:638,7'
          Dst:             winpr_ConvertUTF16toUTF8_Internal
        - Src:             'winpr/libwinpr/crt/unicode_builtin.c:645,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/crt/unicode_builtin.c:649,36'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/crt/unicode_builtin.c:649,36'
          Dst:             winpr_int_assert
    - functionName:    int_WideCharToMultiByte
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/unicode_builtin.c'
      linkageType:     InternalLinkage
      functionLinenumber: 698
      functionLinenumberEnd: 729
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - int
        - int
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         43
      ICount:          187
      EdgeCount:       51
      CyclomaticComplexity: 10
      functionsReached:
        - _wcslen
        - winpr_ConvertUTF16toUTF8
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crt/unicode_builtin.c:709,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/crt/unicode_builtin.c:713,22'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/crt/unicode_builtin.c:727,34'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/crt/unicode_builtin.c:727,34'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/crt/unicode_builtin.c:726,9'
          Dst:             winpr_ConvertUTF16toUTF8
    - functionName:    winpr_ConvertUTF8toUTF16
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/unicode_builtin.c'
      linkageType:     InternalLinkage
      functionLinenumber: 569
      functionLinenumberEnd: 608
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         36
      ICount:          193
      EdgeCount:       43
      CyclomaticComplexity: 9
      functionsReached:
        - SetLastError
        - strnlen
        - winpr_ConvertUTF8toUTF16_Internal
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crt/unicode_builtin.c:578,17'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/crt/unicode_builtin.c:586,7'
          Dst:             winpr_ConvertUTF8toUTF16_Internal
        - Src:             'winpr/libwinpr/crt/unicode_builtin.c:596,7'
          Dst:             winpr_ConvertUTF8toUTF16_Internal
        - Src:             'winpr/libwinpr/crt/unicode_builtin.c:603,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/crt/unicode_builtin.c:607,36'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/crt/unicode_builtin.c:607,36'
          Dst:             winpr_int_assert
    - functionName:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 323
      functionLinenumberEnd: 335
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          65
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintTextMessageVA
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:326,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:328,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:332,4'
          Dst:             WLog_PrintTextMessageVA
    - functionName:    int_MultiByteToWideChar
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/unicode_builtin.c'
      linkageType:     InternalLinkage
      functionLinenumber: 656
      functionLinenumberEnd: 693
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - int
        - int
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         48
      ICount:          203
      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:679,2'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/crt/unicode_builtin.c:670,22'
          Dst:             strlen
        - Src:             'winpr/libwinpr/crt/unicode_builtin.c:678,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/crt/unicode_builtin.c:686,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/crt/unicode_builtin.c:691,34'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/crt/unicode_builtin.c:691,34'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/crt/unicode_builtin.c:690,9'
          Dst:             winpr_ConvertUTF8toUTF16
    - functionName:    Win32ErrorCode2Tag
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/nt/ntstatus.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4642
      functionLinenumberEnd: 4662
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - short
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - bsearch
        - ntstatus_compare
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/nt/ntstatus.c:4648,6'
          Dst:             bsearch
        - Src:             'winpr/libwinpr/nt/ntstatus.c:4648,6'
          Dst:             ntstatus_compare
    - functionName:    ntstatus_compare
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/nt/ntstatus.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4610
      functionLinenumberEnd: 4616
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          43
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - 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:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    NtStatus2Tag
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/nt/ntstatus.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4619
      functionLinenumberEnd: 4639
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - bsearch
        - ntstatus_compare
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/nt/ntstatus.c:4625,6'
          Dst:             bsearch
        - Src:             'winpr/libwinpr/nt/ntstatus.c:4625,6'
          Dst:             ntstatus_compare
    - functionName:    DeleteCriticalSection
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/critical.c'
      linkageType:     InternalLinkage
      functionLinenumber: 258
      functionLinenumberEnd: 276
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          61
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - sem_destroy
        - winpr_int_assert
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/synch/critical.c:259,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/synch/critical.c:271,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: 144
      functionLinenumberEnd: 152
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          46
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - sem_post
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/synch/critical.c:145,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/synch/critical.c:146,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/synch/critical.c:150,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: 236
      functionLinenumberEnd: 255
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          60
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - InterlockedDecrement
        - UnWaitCriticalSection
        - winpr_int_assert
      functionUses:    26
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/synch/critical.c:237,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/synch/critical.c:245,7'
          Dst:             InterlockedDecrement
        - Src:             'winpr/libwinpr/synch/critical.c:248,4'
          Dst:             UnWaitCriticalSection
        - Src:             'winpr/libwinpr/synch/critical.c:253,9'
          Dst:             InterlockedDecrement
    - functionName:    TryEnterCriticalSection
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/critical.c'
      linkageType:     InternalLinkage
      functionLinenumber: 210
      functionLinenumberEnd: 233
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          74
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - GetCurrentThreadId
        - InterlockedCompareExchange
        - InterlockedIncrement
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/synch/critical.c:211,45'
          Dst:             GetCurrentThreadId
        - Src:             'winpr/libwinpr/synch/critical.c:213,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/synch/critical.c:216,6'
          Dst:             InterlockedCompareExchange
        - Src:             'winpr/libwinpr/synch/critical.c:228,3'
          Dst:             InterlockedIncrement
    - functionName:    WaitForCriticalSection
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/critical.c'
      linkageType:     InternalLinkage
      functionLinenumber: 132
      functionLinenumberEnd: 141
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          46
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - sem_wait
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/synch/critical.c:133,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/synch/critical.c:134,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/synch/critical.c:139,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: 155
      functionLinenumberEnd: 207
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          68
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - GetCurrentThreadId
        - InterlockedIncrement
        - WaitForCriticalSection
        - winpr_int_assert
      functionUses:    20
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/synch/critical.c:156,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/synch/critical.c:190,6'
          Dst:             InterlockedIncrement
        - Src:             'winpr/libwinpr/synch/critical.c:193,61'
          Dst:             GetCurrentThreadId
        - Src:             'winpr/libwinpr/synch/critical.c:201,3'
          Dst:             WaitForCriticalSection
        - Src:             'winpr/libwinpr/synch/critical.c:206,55'
          Dst:             GetCurrentThreadId
    - functionName:    InitializeCriticalSectionAndSpinCount
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/critical.c'
      linkageType:     InternalLinkage
      functionLinenumber: 102
      functionLinenumberEnd: 103
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - InitializeCriticalSectionEx
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/synch/critical.c:103,9'
          Dst:             InitializeCriticalSectionEx
    - functionName:    InitializeCriticalSectionEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/critical.c'
      linkageType:     InternalLinkage
      functionLinenumber: 55
      functionLinenumberEnd: 99
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          98
      EdgeCount:       21
      CyclomaticComplexity: 5
      functionsReached:
        - SetCriticalSectionSpinCount
        - WLog_Print_dbg_tag
        - sem_init
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/synch/critical.c:56,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/synch/critical.c:69,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/synch/critical.c:90,6'
          Dst:             sem_init
        - Src:             'winpr/libwinpr/synch/critical.c:94,2'
          Dst:             SetCriticalSectionSpinCount
    - functionName:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 323
      functionLinenumberEnd: 335
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          65
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintTextMessageVA
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:326,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:328,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:332,4'
          Dst:             WLog_PrintTextMessageVA
    - 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: 108
      functionLinenumberEnd: 127
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          30
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/synch/critical.c:109,2'
          Dst:             winpr_int_assert
    - functionName:    InitializeCriticalSection
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/critical.c'
      linkageType:     InternalLinkage
      functionLinenumber: 48
      functionLinenumberEnd: 51
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - InitializeCriticalSectionEx
        - WLog_Print_dbg_tag
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/synch/critical.c:49,7'
          Dst:             InitializeCriticalSectionEx
        - Src:             'winpr/libwinpr/synch/critical.c:50,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    WINPR_HANDLE_IS_HANDLED
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/../handle/handle.h'
      linkageType:     InternalLinkage
      functionLinenumber: 122
      functionLinenumberEnd: 139
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          76
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - SetLastError
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/synch/../handle/handle.h:134,3'
          Dst:             SetLastError
    - functionName:    EventGetFd
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 210
      functionLinenumberEnd: 217
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - EventIsHandled
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/synch/event.c:213,7'
          Dst:             EventIsHandled
    - functionName:    EventIsHandled
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 205
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WINPR_HANDLE_IS_HANDLED
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/synch/event.c:205,9'
          Dst:             WINPR_HANDLE_IS_HANDLED
    - functionName:    EventCloseHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 251
      functionLinenumberEnd: 258
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - EventCloseHandle_
        - EventIsHandled
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/synch/event.c:254,7'
          Dst:             EventIsHandled
        - Src:             'winpr/libwinpr/synch/event.c:257,9'
          Dst:             EventCloseHandle_
    - functionName:    EventCloseHandle_
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 220
      functionLinenumberEnd: 248
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          54
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - winpr_event_uninit
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/synch/event.c:230,2'
          Dst:             winpr_event_uninit
    - functionName:    winpr_event_uninit
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 186
      functionLinenumberEnd: 198
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          61
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - close
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/synch/event.c:189,3'
          Dst:             close
        - Src:             'winpr/libwinpr/synch/event.c:195,3'
          Dst:             close
    - functionName:    GetEventWaitObject
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 537
      functionLinenumberEnd: 543
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - GetEventFileDescriptor
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/synch/event.c:541,7'
          Dst:             GetEventFileDescriptor
    - functionName:    GetEventFileDescriptor
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 485
      functionLinenumberEnd: 487
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_Handle_getFd
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/synch/event.c:487,9'
          Dst:             winpr_Handle_getFd
    - functionName:    winpr_Handle_getFd
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/../handle/handle.h'
      linkageType:     InternalLinkage
      functionLinenumber: 208
      functionLinenumberEnd: 219
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          72
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - winpr_Handle_GetInfo
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/synch/../handle/handle.h:212,7'
          Dst:             winpr_Handle_GetInfo
    - functionName:    winpr_Handle_GetInfo
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/../handle/handle.h'
      linkageType:     InternalLinkage
      functionLinenumber: 152
      functionLinenumberEnd: 171
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SetEventFileDescriptor
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 499
      functionLinenumberEnd: 524
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          109
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - SetLastError
        - WLog_Print_dbg_tag
        - close
        - winpr_Handle_GetInfo
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/synch/event.c:505,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/synch/event.c:507,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/synch/event.c:508,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/synch/event.c:515,3'
          Dst:             close
    - functionName:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 323
      functionLinenumberEnd: 335
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          65
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintTextMessageVA
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:326,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:328,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:332,4'
          Dst:             WLog_PrintTextMessageVA
    - functionName:    CreateWaitObjectEvent
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 467
      functionLinenumberEnd: 470
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - CreateFileDescriptorEventW
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/synch/event.c:469,9'
          Dst:             CreateFileDescriptorEventW
    - functionName:    CreateFileDescriptorEventW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 431
      functionLinenumberEnd: 449
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          69
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - WINPR_HANDLE_SET_TYPE_AND_MODE
        - calloc
        - winpr_event_init_from_fd
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/synch/event.c:435,24'
          Dst:             calloc
        - Src:             'winpr/libwinpr/synch/event.c:443,3'
          Dst:             winpr_event_init_from_fd
        - Src:             'winpr/libwinpr/synch/event.c:445,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: 142
      functionLinenumberEnd: 147
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          13
      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: 142
      functionLinenumberEnd: 148
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          24
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    CreateFileDescriptorEventA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 457
      functionLinenumberEnd: 459
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - CreateFileDescriptorEventW
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/synch/event.c:458,9'
          Dst:             CreateFileDescriptorEventW
    - functionName:    ResetEvent
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 410
      functionLinenumberEnd: 424
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - SetLastError
        - WLog_Print_dbg_tag
        - winpr_Handle_GetInfo
        - winpr_event_reset
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/synch/event.c:415,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/synch/event.c:417,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/synch/event.c:418,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/synch/event.c:423,9'
          Dst:             winpr_event_reset
    - functionName:    winpr_event_reset
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 166
      functionLinenumberEnd: 182
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          65
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - eventfd_read
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/synch/event.c:174,10'
          Dst:             eventfd_read
        - Src:             'winpr/libwinpr/synch/event.c:179,23'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/synch/event.c:182,10'
          Dst:             __errno_location
    - functionName:    eventfd_read
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    OpenEventA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 383
      functionLinenumberEnd: 389
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/synch/event.c:388,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    OpenEventW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 373
      functionLinenumberEnd: 379
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/synch/event.c:378,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    CreateEventExA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 355
      functionLinenumberEnd: 369
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          71
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - CreateEventA
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/synch/event.c:366,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/synch/event.c:369,9'
          Dst:             CreateEventA
    - functionName:    CreateEventA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 285
      functionLinenumberEnd: 329
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          139
      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:  []
      Callsites:
        - Src:             'winpr/libwinpr/synch/event.c:286,37'
          Dst:             calloc
        - Src:             'winpr/libwinpr/synch/event.c:289,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/synch/event.c:295,17'
          Dst:             strdup
        - Src:             'winpr/libwinpr/synch/event.c:302,2'
          Dst:             WINPR_HANDLE_SET_TYPE_AND_MODE
        - Src:             'winpr/libwinpr/synch/event.c:305,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/synch/event.c:307,7'
          Dst:             winpr_event_init
        - Src:             'winpr/libwinpr/synch/event.c:312,8'
          Dst:             SetEvent
        - Src:             'winpr/libwinpr/synch/event.c:326,2'
          Dst:             EventCloseHandle_
    - functionName:    winpr_event_init
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 97
      functionLinenumberEnd: 117
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          105
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - close
        - eventfd
        - set_non_blocking_fd
        - winpr_set_cloexec
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/synch/event.c:100,18'
          Dst:             eventfd
        - Src:             'winpr/libwinpr/synch/event.c:102,30'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/synch/event.c:106,19'
          Dst:             eventfd
        - Src:             'winpr/libwinpr/synch/event.c:109,9'
          Dst:             set_non_blocking_fd
        - Src:             'winpr/libwinpr/synch/event.c:109,48'
          Dst:             winpr_set_cloexec
        - Src:             'winpr/libwinpr/synch/event.c:111,5'
          Dst:             close
    - functionName:    SetEvent
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 393
      functionLinenumberEnd: 407
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - SetLastError
        - WLog_Print_dbg_tag
        - winpr_Handle_GetInfo
        - winpr_event_set
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/synch/event.c:398,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/synch/event.c:400,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/synch/event.c:401,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/synch/event.c:406,9'
          Dst:             winpr_event_set
    - functionName:    winpr_event_set
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 150
      functionLinenumberEnd: 162
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          56
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - eventfd_write
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/synch/event.c:156,9'
          Dst:             eventfd_write
        - Src:             'winpr/libwinpr/synch/event.c:160,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:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    set_non_blocking_fd
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 88
      functionLinenumberEnd: 94
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - fcntl64
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/synch/event.c:89,14'
          Dst:             fcntl64
        - Src:             'winpr/libwinpr/synch/event.c:93,9'
          Dst:             fcntl64
    - functionName:    CreateEventExW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 333
      functionLinenumberEnd: 350
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          76
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - ConvertWCharToUtf8
        - CreateEventW
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/synch/event.c:346,3'
          Dst:             ConvertWCharToUtf8
        - Src:             'winpr/libwinpr/synch/event.c:347,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/synch/event.c:350,9'
          Dst:             CreateEventW
    - functionName:    CreateEventW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 267
      functionLinenumberEnd: 281
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          58
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ConvertWCharToUtf8Alloc
        - CreateEventA
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/synch/event.c:273,10'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/synch/event.c:278,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:
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          81
      EdgeCount:       15
      CyclomaticComplexity: 3
      functionsReached:
        - InterlockedCompareExchangePointer
        - Sleep
        - WLog_Print_dbg_tag
      functionUses:    11
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/synch/init.c:58,3'
          Branch Sides:    []
      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: 323
      functionLinenumberEnd: 335
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          65
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintTextMessageVA
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:326,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:328,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:332,4'
          Dst:             WLog_PrintTextMessageVA
    - 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:
        - ''
      BBCount:         3
      ICount:          14
      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:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          18
      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:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          20
      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:
        - ''
      BBCount:         3
      ICount:          15
      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: 323
      functionLinenumberEnd: 335
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          65
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintTextMessageVA
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:326,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:328,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:332,4'
          Dst:             WLog_PrintTextMessageVA
    - 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:
        - ''
        - ''
      BBCount:         28
      ICount:          145
      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:  []
      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:
        - ''
      BBCount:         3
      ICount:          16
      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: 538
      functionLinenumberEnd: 543
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - SetEvent
        - WaitForSingleObjectEx
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/synch/wait.c:539,7'
          Dst:             SetEvent
        - Src:             'winpr/libwinpr/synch/wait.c:542,9'
          Dst:             WaitForSingleObjectEx
    - functionName:    WaitForSingleObjectEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/wait.c'
      linkageType:     InternalLinkage
      functionLinenumber: 136
      functionLinenumberEnd: 301
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         73
      ICount:          451
      EdgeCount:       100
      CyclomaticComplexity: 29
      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:  []
      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:157,14'
          Dst:             waitpid
        - Src:             'winpr/libwinpr/synch/wait.c:171,5'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/synch/wait.c:171,5'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/synch/wait.c:171,5'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/synch/wait.c:171,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/synch/wait.c:173,5'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/synch/wait.c:189,19'
          Dst:             SleepEx
        - Src:             'winpr/libwinpr/synch/wait.c:202,30'
          Dst:             ts_from_ns
        - Src:             'winpr/libwinpr/synch/wait.c:204,4'
          Dst:             ts_add_ms
        - Src:             'winpr/libwinpr/synch/wait.c:205,13'
          Dst:             pthread_mutex_timedlock
        - Src:             'winpr/libwinpr/synch/wait.c:212,4'
          Dst:             pthread_mutex_lock
        - Src:             'winpr/libwinpr/synch/wait.c:228,28'
          Dst:             _GetCurrentThread
        - Src:             'winpr/libwinpr/synch/wait.c:245,12'
          Dst:             winpr_Handle_getFd
        - 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_init
        - Src:             'winpr/libwinpr/synch/wait.c:255,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/synch/wait.c:256,4'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/synch/wait.c:260,8'
          Dst:             pollset_add
        - Src:             'winpr/libwinpr/synch/wait.c:262,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/synch/wait.c:266,22'
          Dst:             apc_collectFds
        - Src:             'winpr/libwinpr/synch/wait.c:268,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/synch/wait.c:274,13'
          Dst:             pollset_poll
        - Src:             'winpr/libwinpr/synch/wait.c:278,5'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/synch/wait.c:278,5'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/synch/wait.c:278,5'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/synch/wait.c:278,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/synch/wait.c:285,21'
          Dst:             apc_executeCompletions
        - Src:             'winpr/libwinpr/synch/wait.c:288,11'
          Dst:             pollset_isSignaled
        - Src:             'winpr/libwinpr/synch/wait.c:289,3'
          Dst:             pollset_uninit
        - Src:             'winpr/libwinpr/synch/wait.c:294,10'
          Dst:             winpr_Handle_cleanup
        - Src:             'winpr/libwinpr/synch/wait.c:298,2'
          Dst:             pollset_uninit
        - Src:             'winpr/libwinpr/synch/wait.c:299,2'
          Dst:             SetLastError
    - functionName:    winpr_Handle_GetInfo
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/../handle/handle.h'
      linkageType:     InternalLinkage
      functionLinenumber: 152
      functionLinenumberEnd: 171
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 323
      functionLinenumberEnd: 335
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          65
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintTextMessageVA
      functionUses:    16
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:326,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:328,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:332,4'
          Dst:             WLog_PrintTextMessageVA
    - functionName:    winpr_Handle_getFd
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/../handle/handle.h'
      linkageType:     InternalLinkage
      functionLinenumber: 208
      functionLinenumberEnd: 219
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          72
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - winpr_Handle_GetInfo
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/synch/../handle/handle.h:212,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:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_GetUnixTimeNS
      functionUses:    1
      BranchProfiles:  []
      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:
        - ''
        - ''
      BBCount:         1
      ICount:          41
      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: 223
      functionLinenumberEnd: 238
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          73
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - winpr_Handle_GetInfo
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/synch/../handle/handle.h:227,7'
          Dst:             winpr_Handle_GetInfo
    - functionName:    WaitForMultipleObjects
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/wait.c'
      linkageType:     InternalLinkage
      functionLinenumber: 532
      functionLinenumberEnd: 533
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WaitForMultipleObjectsEx
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/synch/wait.c:533,9'
          Dst:             WaitForMultipleObjectsEx
    - functionName:    WaitForMultipleObjectsEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/wait.c'
      linkageType:     InternalLinkage
      functionLinenumber: 310
      functionLinenumberEnd: 528
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - int
        - 'N/A'
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         96
      ICount:          570
      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:  []
      Callsites:
        - Src:             'winpr/libwinpr/synch/wait.c:328,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/synch/wait.c:334,12'
          Dst:             winpr_GetCurrentThread
        - Src:             'winpr/libwinpr/synch/wait.c:351,7'
          Dst:             pollset_init
        - Src:             'winpr/libwinpr/synch/wait.c:353,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/synch/wait.c:360,8'
          Dst:             winpr_GetTickCount64
        - Src:             'winpr/libwinpr/synch/wait.c:383,9'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/synch/wait.c:385,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/synch/wait.c:386,5'
          Dst:             winpr_log_backtrace
        - Src:             'winpr/libwinpr/synch/wait.c:387,5'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/synch/wait.c:391,9'
          Dst:             winpr_Handle_getFd
        - Src:             'winpr/libwinpr/synch/wait.c:394,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/synch/wait.c:395,5'
          Dst:             winpr_log_backtrace
        - Src:             'winpr/libwinpr/synch/wait.c:396,5'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/synch/wait.c:400,9'
          Dst:             pollset_add
        - Src:             'winpr/libwinpr/synch/wait.c:402,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/synch/wait.c:403,5'
          Dst:             winpr_log_backtrace
        - Src:             'winpr/libwinpr/synch/wait.c:404,5'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/synch/wait.c:412,22'
          Dst:             apc_collectFds
        - Src:             'winpr/libwinpr/synch/wait.c:414,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/synch/wait.c:415,4'
          Dst:             winpr_log_backtrace
        - Src:             'winpr/libwinpr/synch/wait.c:416,4'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/synch/wait.c:431,13'
          Dst:             pollset_poll
        - Src:             'winpr/libwinpr/synch/wait.c:436,5'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/synch/wait.c:436,5'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/synch/wait.c:436,5'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/synch/wait.c:436,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/synch/wait.c:442,5'
          Dst:             winpr_log_backtrace
        - Src:             'winpr/libwinpr/synch/wait.c:443,5'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/synch/wait.c:449,21'
          Dst:             apc_executeCompletions
        - Src:             'winpr/libwinpr/synch/wait.c:468,18'
          Dst:             pollset_isSignaled
        - Src:             'winpr/libwinpr/synch/wait.c:471,17'
          Dst:             winpr_Handle_cleanup
        - Src:             'winpr/libwinpr/synch/wait.c:474,7'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/synch/wait.c:508,4'
          Dst:             pollset_uninit
        - Src:             'winpr/libwinpr/synch/wait.c:510,9'
          Dst:             pollset_init
        - Src:             'winpr/libwinpr/synch/wait.c:512,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/synch/wait.c:513,5'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/synch/wait.c:518,4'
          Dst:             pollset_reset
        - Src:             'winpr/libwinpr/synch/wait.c:520,9'
          Dst:             winpr_GetTickCount64
        - Src:             'winpr/libwinpr/synch/wait.c:526,2'
          Dst:             pollset_uninit
    - functionName:    WaitForSingleObject
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/wait.c'
      linkageType:     InternalLinkage
      functionLinenumber: 304
      functionLinenumberEnd: 305
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WaitForSingleObjectEx
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/synch/wait.c:305,9'
          Dst:             WaitForSingleObjectEx
    - functionName:    GetDosAttributesFromXAttr
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 967
      functionLinenumberEnd: 1045
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         54
      ICount:          260
      EdgeCount:       67
      CyclomaticComplexity: 15
      functionsReached:
        - WLog_Print_dbg_tag
        - __errno_location
        - close
        - getxattr
        - ioctl
        - ntohl
        - open64
        - strtoul
        - winpr_int_assert
        - winpr_strerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:977,11'
          Dst:             getxattr
        - Src:             'winpr/libwinpr/file/generic.c:980,13'
          Dst:             ntohl
        - Src:             'winpr/libwinpr/file/generic.c:988,12'
          Dst:             getxattr
        - Src:             'winpr/libwinpr/file/generic.c:997,12'
          Dst:             open64
        - Src:             'winpr/libwinpr/file/generic.c:1000,19'
          Dst:             ioctl
        - Src:             'winpr/libwinpr/file/generic.c:1004,5'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/generic.c:1004,5'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/file/generic.c:1004,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/file/generic.c:1010,20'
          Dst:             close
        - Src:             'winpr/libwinpr/file/generic.c:1014,5'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/generic.c:1014,5'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/file/generic.c:1014,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/file/generic.c:1028,12'
          Dst:             getxattr
        - Src:             'winpr/libwinpr/file/generic.c:1031,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/generic.c:1032,30'
          Dst:             strtoul
        - Src:             'winpr/libwinpr/file/generic.c:1033,8'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/generic.c:1034,24'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/file/generic.c:1034,24'
          Dst:             winpr_int_assert
    - functionName:    getxattr
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - 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:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 323
      functionLinenumberEnd: 335
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          65
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintTextMessageVA
      functionUses:    29
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:326,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:328,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:332,4'
          Dst:             WLog_PrintTextMessageVA
    - functionName:    strtoul
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    append
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 582
      functionLinenumberEnd: 584
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_str_append
      functionUses:    15
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:583,2'
          Dst:             winpr_str_append
    - functionName:    UnixChangeFileMode
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1516
      functionLinenumberEnd: 1549
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          143
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - chmod
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:1533,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: 1507
      functionLinenumberEnd: 1508
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - MoveFileExW
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:1508,9'
          Dst:             MoveFileExW
    - functionName:    MoveFileExW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1478
      functionLinenumberEnd: 1497
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          77
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - ConvertWCharToUtf8Alloc
        - SetLastError
        - winpr_MoveFileEx
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:1482,30'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/file/generic.c:1483,25'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/file/generic.c:1488,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/generic.c:1492,8'
          Dst:             winpr_MoveFileEx
    - functionName:    MoveFileA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1501
      functionLinenumberEnd: 1502
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_MoveFileEx
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:1502,9'
          Dst:             winpr_MoveFileEx
    - functionName:    MoveFileExA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1472
      functionLinenumberEnd: 1473
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_MoveFileEx
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:1473,9'
          Dst:             winpr_MoveFileEx
    - functionName:    RemoveDirectoryW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1452
      functionLinenumberEnd: 1468
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          49
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ConvertWCharToUtf8Alloc
        - SetLastError
        - winpr_RemoveDirectory
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:1455,22'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/file/generic.c:1460,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/generic.c:1464,8'
          Dst:             winpr_RemoveDirectory
    - functionName:    RemoveDirectoryA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1446
      functionLinenumberEnd: 1447
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_RemoveDirectory
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:1447,9'
          Dst:             winpr_RemoveDirectory
    - functionName:    CreateDirectoryW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1426
      functionLinenumberEnd: 1442
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ConvertWCharToUtf8Alloc
        - CreateDirectoryA
        - SetLastError
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:1429,22'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/file/generic.c:1434,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/generic.c:1438,8'
          Dst:             CreateDirectoryA
    - functionName:    CreateDirectoryA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1421
      functionLinenumberEnd: 1422
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mkdir
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:1422,9'
          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: 1368
      functionLinenumberEnd: 1392
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          63
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - ConvertFindDataAToW
        - FindNextFileA
        - SetLastError
        - calloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:1369,46'
          Dst:             calloc
        - Src:             'winpr/libwinpr/file/generic.c:1373,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/generic.c:1377,6'
          Dst:             FindNextFileA
        - Src:             'winpr/libwinpr/file/generic.c:1379,8'
          Dst:             ConvertFindDataAToW
        - Src:             'winpr/libwinpr/file/generic.c:1381,4'
          Dst:             SetLastError
    - functionName:    FindNextFileA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1297
      functionLinenumberEnd: 1365
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          205
      EdgeCount:       33
      CyclomaticComplexity: 11
      functionsReached:
        - FilePatternMatchA
        - FindDataFromStat
        - SetLastError
        - __errno_location
        - is_valid_file_search_handle
        - map_posix_err
        - readdir64
        - stat64
        - strlen
        - strncpy
        - strnlen
        - winpr_PathCanonicalize
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:1304,7'
          Dst:             is_valid_file_search_handle
        - Src:             'winpr/libwinpr/file/generic.c:1310,20'
          Dst:             readdir64
        - Src:             'winpr/libwinpr/file/generic.c:1312,7'
          Dst:             FilePatternMatchA
        - Src:             'winpr/libwinpr/file/generic.c:1316,4'
          Dst:             strncpy
        - Src:             'winpr/libwinpr/file/generic.c:1317,27'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/file/generic.c:1318,21'
          Dst:             strlen
        - Src:             'winpr/libwinpr/file/generic.c:1323,5'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/generic.c:1335,22'
          Dst:             winpr_PathCanonicalize
        - Src:             'winpr/libwinpr/file/generic.c:1342,8'
          Dst:             stat64
        - Src:             'winpr/libwinpr/file/generic.c:1345,32'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/generic.c:1345,18'
          Dst:             map_posix_err
        - Src:             'winpr/libwinpr/file/generic.c:1345,5'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/generic.c:1346,5'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/generic.c:1357,14'
          Dst:             FindDataFromStat
        - Src:             'winpr/libwinpr/file/generic.c:1363,2'
          Dst:             SetLastError
    - functionName:    ConvertFindDataAToW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1209
      functionLinenumberEnd: 1230
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          108
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - ConvertUtf8NToWChar
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:1222,6'
          Dst:             ConvertUtf8NToWChar
        - Src:             'winpr/libwinpr/file/generic.c:1226,9'
          Dst:             ConvertUtf8NToWChar
    - functionName:    is_valid_file_search_handle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 955
      functionLinenumberEnd: 964
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          51
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - strncmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:961,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:    12
      BranchProfiles:  []
      Callsites:       []
    - functionName:    stat64
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    9
      BranchProfiles:  []
      Callsites:       []
    - functionName:    FindDataFromStat
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1150
      functionLinenumberEnd: 1169
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          104
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - FileAttributesFromStat
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:1152,37'
          Dst:             FileAttributesFromStat
    - functionName:    FileAttributesFromStat
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1123
      functionLinenumberEnd: 1145
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          126
      EdgeCount:       29
      CyclomaticComplexity: 9
      functionsReached:
        - GetDosAttributesFromXAttr
        - strlen
        - strrchr
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:1124,27'
          Dst:             GetDosAttributesFromXAttr
        - Src:             'winpr/libwinpr/file/generic.c:1132,24'
          Dst:             strrchr
        - Src:             'winpr/libwinpr/file/generic.c:1136,26'
          Dst:             strlen
    - functionName:    FindFirstFileExW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1291
      functionLinenumberEnd: 1293
      functionDepth:   0
      returnType:      'N/A'
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:1292,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    FindFirstFileExA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1280
      functionLinenumberEnd: 1282
      functionDepth:   0
      returnType:      'N/A'
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:1281,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    FindFirstFileW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1233
      functionLinenumberEnd: 1272
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          92
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - ConvertFindDataAToW
        - ConvertWCharToUtf8Alloc
        - FindClose
        - FindFirstFileA
        - SetLastError
        - calloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:1239,46'
          Dst:             calloc
        - Src:             'winpr/libwinpr/file/generic.c:1243,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/generic.c:1247,16'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/file/generic.c:1250,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/generic.c:1255,6'
          Dst:             FindFirstFileA
        - Src:             'winpr/libwinpr/file/generic.c:1260,8'
          Dst:             ConvertFindDataAToW
        - Src:             'winpr/libwinpr/file/generic.c:1262,4'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/generic.c:1263,4'
          Dst:             FindClose
    - functionName:    FindFirstFileA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1173
      functionLinenumberEnd: 1205
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          111
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - FindClose
        - FindNextFileA
        - PathGetSeparatorA
        - SetLastError
        - file_search_new
        - strlen
        - strrchr
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:1176,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/generic.c:1185,22'
          Dst:             strlen
        - Src:             'winpr/libwinpr/file/generic.c:1186,19'
          Dst:             PathGetSeparatorA
        - Src:             'winpr/libwinpr/file/generic.c:1187,20'
          Dst:             strrchr
        - Src:             'winpr/libwinpr/file/generic.c:1190,15'
          Dst:             strlen
        - Src:             'winpr/libwinpr/file/generic.c:1194,16'
          Dst:             file_search_new
        - Src:             'winpr/libwinpr/file/generic.c:1199,6'
          Dst:             FindNextFileA
        - Src:             'winpr/libwinpr/file/generic.c:1203,2'
          Dst:             FindClose
    - functionName:    FindClose
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1395
      functionLinenumberEnd: 1417
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          65
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - closedir
        - is_valid_file_search_handle
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:1404,7'
          Dst:             is_valid_file_search_handle
        - Src:             'winpr/libwinpr/file/generic.c:1412,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: 893
      functionLinenumberEnd: 952
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         36
      ICount:          212
      EdgeCount:       46
      CyclomaticComplexity: 12
      functionsReached:
        - FindClose
        - SetLastError
        - WLog_Print_dbg_tag
        - Win32ErrorCode2Tag
        - __errno_location
        - _strdup
        - calloc
        - closedir
        - map_posix_err
        - opendir
        - stat64
        - strndup
        - winpr_strerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:894,55'
          Dst:             calloc
        - Src:             'winpr/libwinpr/file/generic.c:900,24'
          Dst:             strndup
        - Src:             'winpr/libwinpr/file/generic.c:901,27'
          Dst:             strndup
        - Src:             'winpr/libwinpr/file/generic.c:905,22'
          Dst:             opendir
        - Src:             'winpr/libwinpr/file/generic.c:913,7'
          Dst:             stat64
        - Src:             'winpr/libwinpr/file/generic.c:917,25'
          Dst:             opendir
        - Src:             'winpr/libwinpr/file/generic.c:922,28'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/file/generic.c:923,31'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/file/generic.c:926,7'
          Dst:             closedir
        - Src:             'winpr/libwinpr/file/generic.c:935,36'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/generic.c:935,22'
          Dst:             map_posix_err
        - Src:             'winpr/libwinpr/file/generic.c:936,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/generic.c:936,4'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/file/generic.c:936,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/generic.c:936,4'
          Dst:             Win32ErrorCode2Tag
        - Src:             'winpr/libwinpr/file/generic.c:936,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/file/generic.c:939,4'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/generic.c:949,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: 861
      functionLinenumberEnd: 878
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          75
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_Handle_GetInfo
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:868,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/file/generic.c:876,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    winpr_Handle_GetInfo
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/../handle/handle.h'
      linkageType:     InternalLinkage
      functionLinenumber: 152
      functionLinenumberEnd: 171
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    17
      BranchProfiles:  []
      Callsites:       []
    - functionName:    UnlockFileEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 839
      functionLinenumberEnd: 857
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          78
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_Handle_GetInfo
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:846,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/file/generic.c:855,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    UnlockFile
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 817
      functionLinenumberEnd: 835
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          78
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_Handle_GetInfo
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:824,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/file/generic.c:833,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    LockFileEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 795
      functionLinenumberEnd: 813
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          81
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_Handle_GetInfo
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:802,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/file/generic.c:811,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    LockFile
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 773
      functionLinenumberEnd: 791
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          78
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_Handle_GetInfo
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:780,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/file/generic.c:789,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SetFilePointerEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 751
      functionLinenumberEnd: 769
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          77
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_Handle_GetInfo
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:758,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/file/generic.c:767,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SetFilePointer
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 729
      functionLinenumberEnd: 747
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          75
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_Handle_GetInfo
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:736,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/file/generic.c:745,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    GetFileSize
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 708
      functionLinenumberEnd: 725
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          69
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_Handle_GetInfo
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:715,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/file/generic.c:723,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SetEndOfFile
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 688
      functionLinenumberEnd: 705
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          66
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_Handle_GetInfo
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:695,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/file/generic.c:703,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SetFileAttributesW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 669
      functionLinenumberEnd: 685
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          52
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - ConvertWCharToUtf8Alloc
        - SetFileAttributesA
        - SetLastError
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:675,22'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/file/generic.c:678,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/generic.c:682,8'
          Dst:             SetFileAttributesA
    - functionName:    SetFileAttributesA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 627
      functionLinenumberEnd: 666
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         38
      ICount:          179
      EdgeCount:       46
      CyclomaticComplexity: 10
      functionsReached:
        - SetDosAttributesToXAttr
        - WLog_Print_dbg_tag
        - close
        - fchmod
        - flagsToStr
        - fstat64
        - open64
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:635,23'
          Dst:             flagsToStr
        - Src:             'winpr/libwinpr/file/generic.c:636,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/file/generic.c:639,2'
          Dst:             SetDosAttributesToXAttr
        - Src:             'winpr/libwinpr/file/generic.c:641,11'
          Dst:             open64
        - Src:             'winpr/libwinpr/file/generic.c:646,6'
          Dst:             fstat64
        - Src:             'winpr/libwinpr/file/generic.c:651,17'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/file/generic.c:651,17'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/file/generic.c:658,6'
          Dst:             fchmod
        - Src:             'winpr/libwinpr/file/generic.c:663,2'
          Dst:             close
    - functionName:    flagsToStr
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 588
      functionLinenumberEnd: 623
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         48
      ICount:          267
      EdgeCount:       63
      CyclomaticComplexity: 17
      functionsReached:
        - append
        - snprintf
        - winpr_str_append
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:591,3'
          Dst:             append
        - Src:             'winpr/libwinpr/file/generic.c:593,3'
          Dst:             append
        - Src:             'winpr/libwinpr/file/generic.c:595,3'
          Dst:             append
        - Src:             'winpr/libwinpr/file/generic.c:597,3'
          Dst:             append
        - Src:             'winpr/libwinpr/file/generic.c:599,3'
          Dst:             append
        - Src:             'winpr/libwinpr/file/generic.c:601,3'
          Dst:             append
        - Src:             'winpr/libwinpr/file/generic.c:603,3'
          Dst:             append
        - Src:             'winpr/libwinpr/file/generic.c:605,3'
          Dst:             append
        - Src:             'winpr/libwinpr/file/generic.c:607,3'
          Dst:             append
        - Src:             'winpr/libwinpr/file/generic.c:609,3'
          Dst:             append
        - Src:             'winpr/libwinpr/file/generic.c:611,3'
          Dst:             append
        - Src:             'winpr/libwinpr/file/generic.c:613,3'
          Dst:             append
        - Src:             'winpr/libwinpr/file/generic.c:615,3'
          Dst:             append
        - Src:             'winpr/libwinpr/file/generic.c:617,3'
          Dst:             append
        - Src:             'winpr/libwinpr/file/generic.c:619,3'
          Dst:             append
        - Src:             'winpr/libwinpr/file/generic.c:621,8'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/file/generic.c:622,2'
          Dst:             winpr_str_append
    - functionName:    SetDosAttributesToXAttr
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1052
      functionLinenumberEnd: 1120
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          157
      EdgeCount:       35
      CyclomaticComplexity: 11
      functionsReached:
        - WLog_Print_dbg_tag
        - __errno_location
        - close
        - getxattr
        - htonl
        - ioctl
        - open64
        - removexattr
        - setxattr
        - snprintf
        - strlen
        - winpr_strerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:1057,23'
          Dst:             htonl
        - Src:             'winpr/libwinpr/file/generic.c:1060,6'
          Dst:             setxattr
        - Src:             'winpr/libwinpr/file/generic.c:1062,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/file/generic.c:1067,19'
          Dst:             getxattr
        - Src:             'winpr/libwinpr/file/generic.c:1070,7'
          Dst:             setxattr
        - Src:             'winpr/libwinpr/file/generic.c:1072,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/file/generic.c:1080,11'
          Dst:             open64
        - Src:             'winpr/libwinpr/file/generic.c:1083,7'
          Dst:             ioctl
        - Src:             'winpr/libwinpr/file/generic.c:1085,4'
          Dst:             close
        - Src:             'winpr/libwinpr/file/generic.c:1086,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/file/generic.c:1089,3'
          Dst:             close
        - Src:             'winpr/libwinpr/file/generic.c:1099,18'
          Dst:             removexattr
        - Src:             'winpr/libwinpr/file/generic.c:1103,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/generic.c:1103,4'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/file/generic.c:1103,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/file/generic.c:1110,22'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/file/generic.c:1114,50'
          Dst:             strlen
        - Src:             'winpr/libwinpr/file/generic.c:1114,6'
          Dst:             setxattr
        - Src:             'winpr/libwinpr/file/generic.c:1115,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/file/generic.c:1117,2'
          Dst:             WLog_Print_dbg_tag
    - 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:    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:    setxattr
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    removexattr
      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:    GetFileInformationByHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 562
      functionLinenumberEnd: 579
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          69
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_Handle_GetInfo
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:569,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/file/generic.c:577,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    GetFileAttributesW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 545
      functionLinenumberEnd: 559
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          49
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - ConvertWCharToUtf8Alloc
        - GetFileAttributesA
        - SetLastError
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:549,22'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/file/generic.c:552,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/generic.c:556,8'
          Dst:             GetFileAttributesA
    - functionName:    GetFileAttributesA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 536
      functionLinenumberEnd: 542
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - FileAttributesFromStat
        - stat64
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:538,6'
          Dst:             stat64
        - Src:             'winpr/libwinpr/file/generic.c:541,9'
          Dst:             FileAttributesFromStat
    - functionName:    GetFileAttributesExW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 518
      functionLinenumberEnd: 533
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          55
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - ConvertWCharToUtf8Alloc
        - GetFileAttributesExA
        - SetLastError
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:522,22'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/file/generic.c:526,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/generic.c:530,8'
          Dst:             GetFileAttributesExA
    - functionName:    GetFileAttributesExA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 494
      functionLinenumberEnd: 514
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          86
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - FindDataFromStat
        - stat64
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:500,6'
          Dst:             stat64
        - Src:             'winpr/libwinpr/file/generic.c:504,7'
          Dst:             FindDataFromStat
    - functionName:    FlushFileBuffers
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 472
      functionLinenumberEnd: 489
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          66
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_Handle_GetInfo
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:479,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/file/generic.c:487,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    WriteFileGather
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 451
      functionLinenumberEnd: 469
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          78
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_Handle_GetInfo
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:458,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/file/generic.c:467,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    WriteFileEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 429
      functionLinenumberEnd: 447
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          78
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_Handle_GetInfo
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:436,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/file/generic.c:445,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    WriteFile
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 407
      functionLinenumberEnd: 425
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          78
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_Handle_GetInfo
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:414,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/file/generic.c:423,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    ReadFileScatter
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 385
      functionLinenumberEnd: 403
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          78
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_Handle_GetInfo
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:392,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/file/generic.c:401,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    ReadFileEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 363
      functionLinenumberEnd: 381
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          78
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_Handle_GetInfo
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:370,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/file/generic.c:379,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    ReadFile
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 333
      functionLinenumberEnd: 359
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          97
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_Handle_GetInfo
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:348,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/file/generic.c:357,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    DeleteFileW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 322
      functionLinenumberEnd: 329
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ConvertWCharToUtf8Alloc
        - winpr_DeleteFile
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:325,22'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/file/generic.c:326,12'
          Dst:             winpr_DeleteFile
    - functionName:    DeleteFileA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 316
      functionLinenumberEnd: 317
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_DeleteFile
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:317,9'
          Dst:             winpr_DeleteFile
    - functionName:    CreateFileW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 295
      functionLinenumberEnd: 312
      functionDepth:   0
      returnType:      'N/A'
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          67
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ConvertWCharToUtf8Alloc
        - SetLastError
        - winpr_CreateFile
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:299,22'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/file/generic.c:303,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/generic.c:307,8'
          Dst:             winpr_CreateFile
    - functionName:    winpr_CreateFile
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 256
      functionLinenumberEnd: 290
      functionDepth:   0
      returnType:      'N/A'
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          129
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - ArrayList_Count
        - ArrayList_GetItem
        - ArrayList_Lock
        - ArrayList_Unlock
        - HandleCreatorsInit
        - SetLastError
        - pthread_once
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:260,6'
          Dst:             pthread_once
        - Src:             'winpr/libwinpr/file/generic.c:260,6'
          Dst:             HandleCreatorsInit
        - Src:             'winpr/libwinpr/file/generic.c:262,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/generic.c:268,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/generic.c:272,2'
          Dst:             ArrayList_Lock
        - Src:             'winpr/libwinpr/file/generic.c:274,26'
          Dst:             ArrayList_Count
        - Src:             'winpr/libwinpr/file/generic.c:276,35'
          Dst:             ArrayList_GetItem
        - Src:             'winpr/libwinpr/file/generic.c:283,4'
          Dst:             ArrayList_Unlock
        - Src:             'winpr/libwinpr/file/generic.c:288,2'
          Dst:             ArrayList_Unlock
    - functionName:    HandleCreatorsInit
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 199
      functionLinenumberEnd: 214
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         15
      ICount:          56
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - ArrayList_Append
        - ArrayList_New
        - GetCommHandleCreator
        - GetFileHandleCreator
        - GetNamedPipeClientHandleCreator
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:200,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/file/generic.c:201,19'
          Dst:             ArrayList_New
        - Src:             'winpr/libwinpr/file/generic.c:209,35'
          Dst:             GetNamedPipeClientHandleCreator
        - Src:             'winpr/libwinpr/file/generic.c:209,2'
          Dst:             ArrayList_Append
        - Src:             'winpr/libwinpr/file/generic.c:210,33'
          Dst:             GetCommHandleCreator
        - Src:             'winpr/libwinpr/file/generic.c:212,3'
          Dst:             ArrayList_Append
        - Src:             'winpr/libwinpr/file/generic.c:213,35'
          Dst:             GetFileHandleCreator
        - Src:             'winpr/libwinpr/file/generic.c:213,2'
          Dst:             ArrayList_Append
    - 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:    CreateFileA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 247
      functionLinenumberEnd: 249
      functionDepth:   0
      returnType:      'N/A'
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          33
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_CreateFile
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:248,9'
          Dst:             winpr_CreateFile
    - functionName:    WINPR_HANDLE_IS_HANDLED
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/../handle/handle.h'
      linkageType:     InternalLinkage
      functionLinenumber: 122
      functionLinenumberEnd: 139
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          76
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - SetLastError
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/../handle/handle.h:134,3'
          Dst:             SetLastError
    - functionName:    NamedPipeClientGetFd
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/namedPipeClient.c'
      linkageType:     InternalLinkage
      functionLinenumber: 87
      functionLinenumberEnd: 97
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          50
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - NamedPipeClientIsHandled
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:90,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:
        - ''
      BBCount:         3
      ICount:          15
      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: 84
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          113
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - NamedPipeClientIsHandled
        - close
      functionUses:    0
      BranchProfiles:  []
      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:70,3'
          Dst:             close
    - functionName:    WINPR_HANDLE_SET_TYPE_AND_MODE
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/../handle/handle.h'
      linkageType:     InternalLinkage
      functionLinenumber: 142
      functionLinenumberEnd: 148
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          24
      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: 323
      functionLinenumberEnd: 335
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          65
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintTextMessageVA
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:326,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:328,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:332,4'
          Dst:             WLog_PrintTextMessageVA
    - functionName:    GetNamePipeFileDescriptor
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/namedPipeClient.c'
      linkageType:     InternalLinkage
      functionLinenumber: 284
      functionLinenumberEnd: 297
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          55
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - NamedPipeClientIsHandled
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:289,7'
          Dst:             NamedPipeClientIsHandled
    - functionName:    GetNamedPipeUnixDomainSocketFilePathA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/namedPipeClient.c'
      linkageType:     InternalLinkage
      functionLinenumber: 271
      functionLinenumberEnd: 280
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          33
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - GetCombinedPath
        - GetNamedPipeNameWithoutPrefixA
        - GetNamedPipeUnixDomainSocketBaseFilePathA
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:275,15'
          Dst:             GetNamedPipeUnixDomainSocketBaseFilePathA
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:276,15'
          Dst:             GetNamedPipeNameWithoutPrefixA
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:277,15'
          Dst:             GetCombinedPath
    - functionName:    GetNamedPipeUnixDomainSocketBaseFilePathA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/namedPipeClient.c'
      linkageType:     InternalLinkage
      functionLinenumber: 257
      functionLinenumberEnd: 268
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - GetCombinedPath
        - GetKnownPath
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:260,15'
          Dst:             GetKnownPath
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:265,15'
          Dst:             GetCombinedPath
    - functionName:    GetNamedPipeNameWithoutPrefixA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/namedPipeClient.c'
      linkageType:     InternalLinkage
      functionLinenumber: 243
      functionLinenumberEnd: 254
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          46
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - IsNamedPipeFileNameA
        - _strdup
        - strnlen
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:249,7'
          Dst:             IsNamedPipeFileNameA
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:252,31'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:252,15'
          Dst:             _strdup
    - functionName:    IsNamedPipeFileNameA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/namedPipeClient.c'
      linkageType:     InternalLinkage
      functionLinenumber: 238
      functionLinenumberEnd: 239
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strncmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:239,10'
          Dst:             strncmp
    - functionName:    NamedPipeClientCreateFileA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/namedPipeClient.c'
      linkageType:     InternalLinkage
      functionLinenumber: 130
      functionLinenumberEnd: 221
      functionDepth:   0
      returnType:      'N/A'
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         37
      ICount:          283
      EdgeCount:       51
      CyclomaticComplexity: 16
      functionsReached:
        - GetNamedPipeNameWithoutPrefixA
        - GetNamedPipeUnixDomainSocketFilePathA
        - IsNamedPipeFileNameA
        - SetLastError
        - WINPR_HANDLE_SET_TYPE_AND_MODE
        - WLog_Print_dbg_tag
        - _strdup
        - calloc
        - close
        - connect
        - snprintf
        - socket
        - winpr_set_cloexec
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:136,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:137,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:144,7'
          Dst:             IsNamedPipeFileNameA
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:147,52'
          Dst:             calloc
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:151,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:156,2'
          Dst:             WINPR_HANDLE_SET_TYPE_AND_MODE
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:157,21'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:161,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:172,27'
          Dst:             GetNamedPipeNameWithoutPrefixA
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:177,27'
          Dst:             GetNamedPipeUnixDomainSocketFilePathA
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:182,25'
          Dst:             socket
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:188,8'
          Dst:             winpr_set_cloexec
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:195,8'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:196,11'
          Dst:             connect
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:205,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:214,4'
          Dst:             close
    - functionName:    GetNamedPipeClientHandleCreator
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/namedPipeClient.c'
      linkageType:     InternalLinkage
      functionLinenumber: 224
      functionLinenumberEnd: 228
      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: 323
      functionLinenumberEnd: 335
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          65
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintTextMessageVA
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:326,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:328,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:332,4'
          Dst:             WLog_PrintTextMessageVA
    - functionName:    FilePatternMatchSubExpressionA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/pattern.c'
      linkageType:     InternalLinkage
      functionLinenumber: 90
      functionLinenumberEnd: 201
      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:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         34
      ICount:          209
      EdgeCount:       47
      CyclomaticComplexity: 15
      functionsReached:
        - WLog_Print_dbg_tag
        - _strnicmp
        - strchr
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/pattern.c:108,7'
          Dst:             _strnicmp
        - Src:             'winpr/libwinpr/file/pattern.c:124,14'
          Dst:             strchr
        - Src:             'winpr/libwinpr/file/pattern.c:129,8'
          Dst:             _strnicmp
        - Src:             'winpr/libwinpr/file/pattern.c:161,7'
          Dst:             _strnicmp
        - Src:             'winpr/libwinpr/file/pattern.c:175,14'
          Dst:             strchr
        - Src:             'winpr/libwinpr/file/pattern.c:180,8'
          Dst:             _strnicmp
        - Src:             'winpr/libwinpr/file/pattern.c:196,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    FilePatternMatchA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/pattern.c'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 389
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         153
      ICount:          713
      EdgeCount:       188
      CyclomaticComplexity: 37
      functionsReached:
        - FilePatternFindNextWildcardA
        - FilePatternMatchSubExpressionA
        - _stricmp
        - strlen
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/pattern.c:231,28'
          Dst:             strlen
        - Src:             'winpr/libwinpr/file/pattern.c:232,29'
          Dst:             strlen
        - Src:             'winpr/libwinpr/file/pattern.c:257,13'
          Dst:             strlen
        - Src:             'winpr/libwinpr/file/pattern.c:259,8'
          Dst:             FilePatternFindNextWildcardA
        - Src:             'winpr/libwinpr/file/pattern.c:265,8'
          Dst:             _stricmp
        - Src:             'winpr/libwinpr/file/pattern.c:305,22'
          Dst:             FilePatternFindNextWildcardA
        - Src:             'winpr/libwinpr/file/pattern.c:317,7'
          Dst:             FilePatternFindNextWildcardA
        - Src:             'winpr/libwinpr/file/pattern.c:325,24'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/file/pattern.c:325,24'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/file/pattern.c:330,34'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/file/pattern.c:330,34'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/file/pattern.c:336,11'
          Dst:             FilePatternMatchSubExpressionA
        - Src:             'winpr/libwinpr/file/pattern.c:347,23'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/file/pattern.c:347,23'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/file/pattern.c:353,25'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/file/pattern.c:353,25'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/file/pattern.c:359,25'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/file/pattern.c:359,25'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/file/pattern.c:364,13'
          Dst:             FilePatternMatchSubExpressionA
        - Src:             'winpr/libwinpr/file/pattern.c:375,9'
          Dst:             FilePatternFindNextWildcardA
        - Src:             'winpr/libwinpr/file/pattern.c:384,7'
          Dst:             _stricmp
    - functionName:    FilePatternFindNextWildcardA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/pattern.c'
      linkageType:     InternalLinkage
      functionLinenumber: 44
      functionLinenumberEnd: 85
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         36
      ICount:          151
      EdgeCount:       43
      CyclomaticComplexity: 9
      functionsReached:
        - strpbrk
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/pattern.c:45,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/file/pattern.c:46,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/file/pattern.c:50,21'
          Dst:             strpbrk
    - functionName:    GetStdHandle_Uninit
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1068
      functionLinenumberEnd: 1071
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - FileCloseHandleInt
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:1069,2'
          Dst:             FileCloseHandleInt
    - functionName:    FileCloseHandleInt
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 80
      functionLinenumberEnd: 107
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          92
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - FileIsHandled
        - fclose
        - fileno
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:83,7'
          Dst:             FileIsHandled
        - Src:             'winpr/libwinpr/file/file.c:97,7'
          Dst:             fileno
        - Src:             'winpr/libwinpr/file/file.c:99,10'
          Dst:             fclose
    - functionName:    FileIsHandled
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 65
      functionLinenumberEnd: 66
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WINPR_HANDLE_IS_HANDLED
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:66,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:    13
      BranchProfiles:  []
      Callsites:       []
    - functionName:    WINPR_HANDLE_IS_HANDLED
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/../handle/handle.h'
      linkageType:     InternalLinkage
      functionLinenumber: 122
      functionLinenumberEnd: 139
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          76
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - SetLastError
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/../handle/handle.h:134,3'
          Dst:             SetLastError
    - functionName:    FileTimeToUS
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 584
      functionLinenumberEnd: 589
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          27
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    filetimeToTimespec
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 594
      functionLinenumberEnd: 600
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          44
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - FileTimeToUS
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:595,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/file/file.c:596,14'
          Dst:             FileTimeToUS
    - functionName:    _fseeki64
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wtypes.h'
      linkageType:     InternalLinkage
      functionLinenumber: 497
      functionLinenumberEnd: 498
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fseeko64
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/wtypes.h:498,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:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    _ftelli64
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wtypes.h'
      linkageType:     InternalLinkage
      functionLinenumber: 503
      functionLinenumberEnd: 504
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ftello64
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/wtypes.h:504,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:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    FileGetFileInformationByHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 379
      functionLinenumberEnd: 435
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         29
      ICount:          277
      EdgeCount:       39
      CyclomaticComplexity: 12
      functionsReached:
        - fileno
        - fstat64
        - log_error_
        - strlen
        - strrchr
      functionUses:    0
      BranchProfiles:  []
      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:391,10'
          Dst:             log_error_
        - Src:             'winpr/libwinpr/file/file.c:401,12'
          Dst:             strrchr
        - Src:             'winpr/libwinpr/file/file.c:406,26'
          Dst:             strlen
    - functionName:    log_error_
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 137
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         33
      ICount:          118
      EdgeCount:       35
      CyclomaticComplexity: 4
      functionsReached:
        - SetLastError
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - __errno_location
        - map_posix_err
        - winpr_int_assert
        - winpr_strerror
      functionUses:    12
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:120,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/file/file.c:121,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/file/file.c:122,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/file/file.c:123,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/file/file.c:128,9'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/file/file.c:130,6'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/file/file.c:133,59'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:133,44'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/file/file.c:134,25'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:132,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'winpr/libwinpr/file/file.c:136,29'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:136,15'
          Dst:             map_posix_err
        - Src:             'winpr/libwinpr/file/file.c:136,2'
          Dst:             SetLastError
    - functionName:    map_posix_err
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 795
      functionLinenumberEnd: 853
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          99
      EdgeCount:       41
      CyclomaticComplexity: 22
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_strerror
      functionUses:    15
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/file.c:800,2'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:846,4'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/file/file.c:846,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 323
      functionLinenumberEnd: 335
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          65
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintTextMessageVA
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:326,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:328,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:332,4'
          Dst:             WLog_PrintTextMessageVA
    - functionName:    FileSetFileTime
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 605
      functionLinenumberEnd: 631
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          113
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - SetLastError
        - WLog_Print_dbg_tag
        - __errno_location
        - fileno
        - filetimeToTimespec
        - futimens
        - map_posix_err
        - winpr_strerror
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:614,14'
          Dst:             filetimeToTimespec
        - Src:             'winpr/libwinpr/file/file.c:617,14'
          Dst:             filetimeToTimespec
        - Src:             'winpr/libwinpr/file/file.c:620,26'
          Dst:             fileno
        - Src:             'winpr/libwinpr/file/file.c:620,17'
          Dst:             futimens
        - Src:             'winpr/libwinpr/file/file.c:624,3'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:624,3'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/file/file.c:624,3'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:624,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/file/file.c:626,30'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:626,16'
          Dst:             map_posix_err
        - Src:             'winpr/libwinpr/file/file.c:626,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: 546
      functionLinenumberEnd: 581
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          79
      EdgeCount:       16
      CyclomaticComplexity: 6
      functionsReached:
        - SetLastError
        - WLog_Print_dbg_tag
        - fileno
        - flock
        - log_error_
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:554,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/file/file.c:555,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/file.c:564,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/file/file.c:576,12'
          Dst:             fileno
        - Src:             'winpr/libwinpr/file/file.c:576,6'
          Dst:             flock
        - Src:             'winpr/libwinpr/file/file.c:577,10'
          Dst:             log_error_
    - 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: 511
      functionLinenumberEnd: 540
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          69
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
        - fileno
        - flock
        - log_error_
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:522,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/file/file.c:535,12'
          Dst:             fileno
        - Src:             'winpr/libwinpr/file/file.c:535,6'
          Dst:             flock
        - Src:             'winpr/libwinpr/file/file.c:536,10'
          Dst:             log_error_
    - functionName:    FileLockFileEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 441
      functionLinenumberEnd: 505
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          118
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - SetLastError
        - WLog_Print_dbg_tag
        - fileno
        - flock
        - log_error_
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:452,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/file/file.c:453,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/file.c:462,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/file/file.c:498,12'
          Dst:             fileno
        - Src:             'winpr/libwinpr/file/file.c:498,6'
          Dst:             flock
        - Src:             'winpr/libwinpr/file/file.c:499,10'
          Dst:             log_error_
    - functionName:    FileSetFilePointerEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 233
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          94
      EdgeCount:       18
      CyclomaticComplexity: 4
      functionsReached:
        - _fseeki64
        - _ftelli64
        - log_error_
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/file.c:211,2'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:226,6'
          Dst:             _fseeki64
        - Src:             'winpr/libwinpr/file/file.c:227,10'
          Dst:             log_error_
        - Src:             'winpr/libwinpr/file/file.c:230,32'
          Dst:             _ftelli64
    - functionName:    FileSetFilePointer
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 161
      functionLinenumberEnd: 200
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          108
      EdgeCount:       18
      CyclomaticComplexity: 4
      functionsReached:
        - _fseeki64
        - _ftelli64
        - log_error_
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/file.c:178,2'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:193,6'
          Dst:             _fseeki64
        - Src:             'winpr/libwinpr/file/file.c:195,9'
          Dst:             log_error_
        - Src:             'winpr/libwinpr/file/file.c:199,16'
          Dst:             _ftelli64
    - functionName:    FileSetEndOfFile
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 141
      functionLinenumberEnd: 155
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          62
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - _ftelli64
        - fileno
        - ftruncate64
        - log_error_
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:147,21'
          Dst:             _ftelli64
        - Src:             'winpr/libwinpr/file/file.c:151,16'
          Dst:             fileno
        - Src:             'winpr/libwinpr/file/file.c:151,6'
          Dst:             ftruncate64
        - Src:             'winpr/libwinpr/file/file.c:152,10'
          Dst:             log_error_
    - 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:
        - ''
      BBCount:         10
      ICount:          63
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - SetLastError
        - __errno_location
        - fflush
        - map_posix_err
      functionUses:    0
      BranchProfiles:  []
      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:    FileGetFileSize
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 307
      functionLinenumberEnd: 349
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          115
      EdgeCount:       23
      CyclomaticComplexity: 8
      functionsReached:
        - _fseeki64
        - _ftelli64
        - log_error_
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:317,8'
          Dst:             _ftelli64
        - Src:             'winpr/libwinpr/file/file.c:321,9'
          Dst:             log_error_
        - Src:             'winpr/libwinpr/file/file.c:325,6'
          Dst:             _fseeki64
        - Src:             'winpr/libwinpr/file/file.c:327,9'
          Dst:             log_error_
        - Src:             'winpr/libwinpr/file/file.c:331,9'
          Dst:             _ftelli64
        - Src:             'winpr/libwinpr/file/file.c:335,9'
          Dst:             log_error_
        - Src:             'winpr/libwinpr/file/file.c:339,6'
          Dst:             _fseeki64
        - Src:             'winpr/libwinpr/file/file.c:341,9'
          Dst:             log_error_
    - functionName:    FileWrite
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 278
      functionLinenumberEnd: 304
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          93
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - SetLastError
        - WLog_Print_dbg_tag
        - __errno_location
        - clearerr
        - ferror
        - fwrite
        - map_posix_err
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:284,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/file/file.c:285,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/file.c:294,2'
          Dst:             clearerr
        - Src:             'winpr/libwinpr/file/file.c:295,14'
          Dst:             fwrite
        - Src:             'winpr/libwinpr/file/file.c:296,24'
          Dst:             ferror
        - Src:             'winpr/libwinpr/file/file.c:298,30'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:298,16'
          Dst:             map_posix_err
        - Src:             'winpr/libwinpr/file/file.c:298,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:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    FileRead
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 237
      functionLinenumberEnd: 274
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          118
      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:260,3'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:244,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/file/file.c:245,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/file.c:253,2'
          Dst:             clearerr
        - Src:             'winpr/libwinpr/file/file.c:254,14'
          Dst:             fread
        - Src:             'winpr/libwinpr/file/file.c:256,24'
          Dst:             ferror
        - Src:             'winpr/libwinpr/file/file.c:260,11'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:263,5'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/file.c:266,32'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:266,18'
          Dst:             map_posix_err
        - Src:             'winpr/libwinpr/file/file.c:266,5'
          Dst:             SetLastError
    - 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:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    FileGetFd
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 70
      functionLinenumberEnd: 77
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - FileIsHandled
        - fileno
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:73,7'
          Dst:             FileIsHandled
        - Src:             'winpr/libwinpr/file/file.c:76,9'
          Dst:             fileno
    - functionName:    FileCloseHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 110
      functionLinenumberEnd: 111
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - FileCloseHandleInt
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:111,9'
          Dst:             FileCloseHandleInt
    - functionName:    WINPR_HANDLE_SET_TYPE_AND_MODE
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/../handle/handle.h'
      linkageType:     InternalLinkage
      functionLinenumber: 142
      functionLinenumberEnd: 148
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          24
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    FileGetMode
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 768
      functionLinenumberEnd: 792
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          75
      EdgeCount:       14
      CyclomaticComplexity: 8
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/file.c:771,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    FileCreateFileA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 860
      functionLinenumberEnd: 1033
      functionDepth:   0
      returnType:      'N/A'
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         73
      ICount:          506
      EdgeCount:       96
      CyclomaticComplexity: 25
      functionsReached:
        - FileCloseHandle
        - FileGetMode
        - SetLastError
        - WINPR_HANDLE_SET_TYPE_AND_MODE
        - WLog_Print_dbg_tag
        - __errno_location
        - _strdup
        - calloc
        - fchmod
        - fileno
        - flock
        - freopen64
        - fstat64
        - log_error_
        - map_posix_err
        - setvbuf
        - stat64
        - winpr_fopen
        - winpr_int_assert
        - winpr_set_cloexec
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:863,21'
          Dst:             FileGetMode
        - Src:             'winpr/libwinpr/file/file.c:874,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/file/file.c:875,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/file.c:879,23'
          Dst:             calloc
        - Src:             'winpr/libwinpr/file/file.c:882,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/file.c:886,2'
          Dst:             WINPR_HANDLE_SET_TYPE_AND_MODE
        - Src:             'winpr/libwinpr/file/file.c:889,22'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/file/file.c:892,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/file.c:908,8'
          Dst:             stat64
        - Src:             'winpr/libwinpr/file/file.c:910,5'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/file.c:917,8'
          Dst:             winpr_fopen
        - Src:             'winpr/libwinpr/file/file.c:920,31'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:920,17'
          Dst:             map_posix_err
        - Src:             'winpr/libwinpr/file/file.c:920,4'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/file.c:926,8'
          Dst:             freopen64
        - Src:             'winpr/libwinpr/file/file.c:930,7'
          Dst:             stat64
        - Src:             'winpr/libwinpr/file/file.c:932,31'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:932,17'
          Dst:             map_posix_err
        - Src:             'winpr/libwinpr/file/file.c:932,4'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/file.c:943,4'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/file.c:951,8'
          Dst:             winpr_fopen
        - Src:             'winpr/libwinpr/file/file.c:958,30'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:958,16'
          Dst:             map_posix_err
        - Src:             'winpr/libwinpr/file/file.c:958,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/file.c:969,26'
          Dst:             fileno
        - Src:             'winpr/libwinpr/file/file.c:969,8'
          Dst:             winpr_set_cloexec
        - Src:             'winpr/libwinpr/file/file.c:971,31'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:971,17'
          Dst:             map_posix_err
        - Src:             'winpr/libwinpr/file/file.c:971,4'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/file.c:972,4'
          Dst:             FileCloseHandle
        - Src:             'winpr/libwinpr/file/file.c:978,8'
          Dst:             setvbuf
        - Src:             'winpr/libwinpr/file/file.c:1001,13'
          Dst:             fileno
        - Src:             'winpr/libwinpr/file/file.c:1001,7'
          Dst:             flock
        - Src:             'winpr/libwinpr/file/file.c:1007,10'
          Dst:             log_error_
        - Src:             'winpr/libwinpr/file/file.c:1010,31'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:1010,17'
          Dst:             map_posix_err
        - Src:             'winpr/libwinpr/file/file.c:1010,4'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/file.c:1011,4'
          Dst:             FileCloseHandle
        - Src:             'winpr/libwinpr/file/file.c:1019,12'
          Dst:             fileno
        - Src:             'winpr/libwinpr/file/file.c:1019,6'
          Dst:             fstat64
        - Src:             'winpr/libwinpr/file/file.c:1021,17'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/file/file.c:1021,17'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/file/file.c:1022,14'
          Dst:             fileno
        - Src:             'winpr/libwinpr/file/file.c:1022,7'
          Dst:             fchmod
        - Src:             'winpr/libwinpr/file/file.c:1024,31'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:1024,17'
          Dst:             map_posix_err
        - Src:             'winpr/libwinpr/file/file.c:1024,4'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/file.c:1025,4'
          Dst:             FileCloseHandle
        - Src:             'winpr/libwinpr/file/file.c:1031,2'
          Dst:             SetLastError
    - functionName:    winpr_fopen
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1539
      functionLinenumberEnd: 1541
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fopen64
      functionUses:    15
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:1541,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:    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: 1036
      functionLinenumberEnd: 1037
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          6
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    GetLogicalDriveStringsA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1586
      functionLinenumberEnd: 1598
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          45
      EdgeCount:       12
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    GetLogicalDriveStringsW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1569
      functionLinenumberEnd: 1583
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          71
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - ConvertMszUtf8NToWChar
        - GetLogicalDriveStringsA
        - calloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:1573,12'
          Dst:             calloc
        - Src:             'winpr/libwinpr/file/file.c:1578,19'
          Dst:             GetLogicalDriveStringsA
        - Src:             'winpr/libwinpr/file/file.c:1580,3'
          Dst:             ConvertMszUtf8NToWChar
    - functionName:    GetFileHandleForFileDescriptor
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1503
      functionLinenumberEnd: 1536
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          102
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - FileHandle_New
        - __errno_location
        - fcntl64
        - fdopen
        - setvbuf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:1512,6'
          Dst:             fcntl64
        - Src:             'winpr/libwinpr/file/file.c:1512,34'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:1515,10'
          Dst:             fcntl64
        - Src:             'winpr/libwinpr/file/file.c:1520,8'
          Dst:             fdopen
        - Src:             'winpr/libwinpr/file/file.c:1522,8'
          Dst:             fdopen
        - Src:             'winpr/libwinpr/file/file.c:1527,8'
          Dst:             setvbuf
        - Src:             'winpr/libwinpr/file/file.c:1530,10'
          Dst:             FileHandle_New
    - 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: 1048
      functionLinenumberEnd: 1065
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          55
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - SetLastError
        - WINPR_HANDLE_SET_TYPE_AND_MODE
        - _strdup
        - calloc
        - fileno
        - snprintf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:1052,51'
          Dst:             fileno
        - Src:             'winpr/libwinpr/file/file.c:1052,8'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/file/file.c:1053,23'
          Dst:             calloc
        - Src:             'winpr/libwinpr/file/file.c:1056,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/file.c:1061,22'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/file/file.c:1063,2'
          Dst:             WINPR_HANDLE_SET_TYPE_AND_MODE
    - functionName:    ValidFileNameComponent
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1158
      functionLinenumberEnd: 1229
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         183
      ICount:          958
      EdgeCount:       259
      CyclomaticComplexity: 78
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    GetDiskFreeSpaceW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1132
      functionLinenumberEnd: 1147
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          61
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - ConvertWCharToUtf8Alloc
        - GetDiskFreeSpaceA
        - SetLastError
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:1137,23'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/file/file.c:1140,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/file.c:1143,8'
          Dst:             GetDiskFreeSpaceA
    - functionName:    GetDiskFreeSpaceA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1113
      functionLinenumberEnd: 1126
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          84
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - statvfs64
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:1121,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: 1107
      functionLinenumberEnd: 1108
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SetStdHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1101
      functionLinenumberEnd: 1102
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    GetStdHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1074
      functionLinenumberEnd: 1098
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          72
      EdgeCount:       15
      CyclomaticComplexity: 3
      functionsReached:
        - FileHandle_New
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/file.c:1077,2'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:1092,20'
          Dst:             FileHandle_New
    - functionName:    GetFileHandleCreator
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1043
      functionLinenumberEnd: 1044
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          4
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    CommIoCtlToStr
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1523
      functionLinenumberEnd: 1819
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         75
      ICount:          376
      EdgeCount:       148
      CyclomaticComplexity: 75
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:1524,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    CommGetFd
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 144
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - CommIsHandled
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:147,7'
          Dst:             CommIsHandled
    - functionName:    CommIsHandled
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1459
      functionLinenumberEnd: 1464
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - CommInitialized
        - WINPR_HANDLE_IS_HANDLED
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:1460,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:1463,9'
          Dst:             WINPR_HANDLE_IS_HANDLED
    - functionName:    CommInitialized
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 190
      functionLinenumberEnd: 198
      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:  []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:191,6'
          Dst:             pthread_once
        - Src:             'winpr/libwinpr/comm/comm.c:191,6'
          Dst:             CommInit
        - Src:             'winpr/libwinpr/comm/comm.c:193,3'
          Dst:             SetLastError
    - functionName:    WINPR_HANDLE_IS_HANDLED
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/../handle/handle.h'
      linkageType:     InternalLinkage
      functionLinenumber: 122
      functionLinenumberEnd: 139
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          76
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - SetLastError
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/comm/../handle/handle.h:134,3'
          Dst:             SetLastError
    - functionName:    CommInit
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 165
      functionLinenumberEnd: 183
      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:  []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:167,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm.c:168,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm.c:169,32'
          Dst:             calloc
        - Src:             'winpr/libwinpr/comm/comm.c:174,7'
          Dst:             InitializeCriticalSectionEx
        - Src:             'winpr/libwinpr/comm/comm.c:181,9'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/comm/comm.c:182,2'
          Dst:             winpr_int_assert
    - functionName:    CommSerialEvFlagString
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1880
      functionLinenumberEnd: 1916
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          92
      EdgeCount:       34
      CyclomaticComplexity: 18
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:1881,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    CommSerialEvString
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1919
      functionLinenumberEnd: 1942
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          78
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - CommSerialEvFlagString
        - snprintf
        - winpr_str_append
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:1926,2'
          Dst:             winpr_str_append
        - Src:             'winpr/libwinpr/comm/comm.c:1934,21'
          Dst:             CommSerialEvFlagString
        - Src:             'winpr/libwinpr/comm/comm.c:1934,4'
          Dst:             winpr_str_append
        - Src:             'winpr/libwinpr/comm/comm.c:1940,8'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/comm/comm.c:1941,2'
          Dst:             winpr_str_append
    - functionName:    CommStatusErrorEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1823
      functionLinenumberEnd: 1843
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          102
      EdgeCount:       21
      CyclomaticComplexity: 5
      functionsReached:
        - CommInitialized
        - CommIoCtlToStr
        - SetLastError
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - __errno_location
        - winpr_int_assert
        - winpr_strerror
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:1824,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm.c:1828,20'
          Dst:             CommIoCtlToStr
        - Src:             'winpr/libwinpr/comm/comm.c:1830,6'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:1832,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/comm/comm.c:1835,81'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm.c:1836,41'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm.c:1836,26'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/comm/comm.c:1834,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'winpr/libwinpr/comm/comm.c:1841,3'
          Dst:             SetLastError
    - functionName:    CommIoCtl_int
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1848
      functionLinenumberEnd: 1855
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          58
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - CommStatusErrorEx
        - ioctl
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:1849,6'
          Dst:             ioctl
        - Src:             'winpr/libwinpr/comm/comm.c:1851,8'
          Dst:             CommStatusErrorEx
    - functionName:    CommCloseHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1480
      functionLinenumberEnd: 1506
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          129
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - CommIsHandled
        - DeleteCriticalSection
        - close
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:1483,7'
          Dst:             CommIsHandled
        - Src:             'winpr/libwinpr/comm/comm.c:1486,2'
          Dst:             DeleteCriticalSection
        - Src:             'winpr/libwinpr/comm/comm.c:1487,2'
          Dst:             DeleteCriticalSection
        - Src:             'winpr/libwinpr/comm/comm.c:1488,2'
          Dst:             DeleteCriticalSection
        - Src:             'winpr/libwinpr/comm/comm.c:1491,3'
          Dst:             close
        - Src:             'winpr/libwinpr/comm/comm.c:1494,3'
          Dst:             close
        - Src:             'winpr/libwinpr/comm/comm.c:1497,3'
          Dst:             close
        - Src:             'winpr/libwinpr/comm/comm.c:1500,3'
          Dst:             close
        - Src:             'winpr/libwinpr/comm/comm.c:1503,3'
          Dst:             close
    - functionName:    CommUpdateIOCount
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1858
      functionLinenumberEnd: 1877
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          106
      EdgeCount:       29
      CyclomaticComplexity: 7
      functionsReached:
        - CommStatusErrorEx
        - ioctl
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:1860,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm.c:1866,18'
          Dst:             ioctl
        - Src:             'winpr/libwinpr/comm/comm.c:1871,9'
          Dst:             CommStatusErrorEx
    - functionName:    comm_eventfd_cloexec
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1235
      functionLinenumberEnd: 1251
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         16
      ICount:          69
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - close
        - eventfd
        - fcntl64
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:1236,11'
          Dst:             eventfd
        - Src:             'winpr/libwinpr/comm/comm.c:1237,19'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm.c:1243,8'
          Dst:             eventfd
        - Src:             'winpr/libwinpr/comm/comm.c:1245,9'
          Dst:             fcntl64
        - Src:             'winpr/libwinpr/comm/comm.c:1245,49'
          Dst:             fcntl64
        - Src:             'winpr/libwinpr/comm/comm.c:1247,4'
          Dst:             close
    - functionName:    WINPR_HANDLE_SET_TYPE_AND_MODE
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/../handle/handle.h'
      linkageType:     InternalLinkage
      functionLinenumber: 142
      functionLinenumberEnd: 148
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          24
      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: 152
      functionLinenumberEnd: 171
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    _comm_setServerSerialDriver
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1207
      functionLinenumberEnd: 1223
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          49
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - CommInitialized
        - CommLog_PrintEx
        - winpr_Handle_GetInfo
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:1212,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:1215,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/comm/comm.c:1217,3'
          Dst:             CommLog_PrintEx
    - functionName:    CommLog_PrintEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 203
      functionLinenumberEnd: 213
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - int
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          57
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - CommInitialized
        - WLog_IsLevelActive
        - WLog_PrintTextMessageVA
      functionUses:    125
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:204,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:207,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/comm/comm.c:211,2'
          Dst:             WLog_PrintTextMessageVA
    - functionName:    QueryCommDevice
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1127
      functionLinenumberEnd: 1183
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          162
      EdgeCount:       35
      CyclomaticComplexity: 11
      functionsReached:
        - CommInitialized
        - EnterCriticalSection
        - LeaveCriticalSection
        - SetLastError
        - strcmp
        - strncpy
        - strnlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:1129,2'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1131,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:1136,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1142,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1146,2'
          Dst:             EnterCriticalSection
        - Src:             'winpr/libwinpr/comm/comm.c:1153,8'
          Dst:             strcmp
        - Src:             'winpr/libwinpr/comm/comm.c:1165,2'
          Dst:             LeaveCriticalSection
        - Src:             'winpr/libwinpr/comm/comm.c:1169,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1173,22'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/comm/comm.c:1176,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1180,2'
          Dst:             strncpy
    - functionName:    DefineCommDevice
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1030
      functionLinenumberEnd: 1108
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         27
      ICount:          196
      EdgeCount:       36
      CyclomaticComplexity: 11
      functionsReached:
        - CommInitialized
        - EnterCriticalSection
        - LeaveCriticalSection
        - SetLastError
        - _strdup
        - calloc
        - strcmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:1034,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:1037,2'
          Dst:             EnterCriticalSection
        - Src:             'winpr/libwinpr/comm/comm.c:1041,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1045,21'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/comm/comm.c:1049,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1053,21'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/comm/comm.c:1057,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1067,9'
          Dst:             strcmp
        - Src:             'winpr/libwinpr/comm/comm.c:1080,37'
          Dst:             calloc
        - Src:             'winpr/libwinpr/comm/comm.c:1084,6'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1096,4'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1101,2'
          Dst:             LeaveCriticalSection
        - Src:             'winpr/libwinpr/comm/comm.c:1106,2'
          Dst:             LeaveCriticalSection
    - functionName:    WaitCommEvent
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1004
      functionLinenumberEnd: 1018
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          46
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - CommInitialized
        - CommLog_PrintEx
        - SetLastError
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:1007,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:1015,2'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:1016,2'
          Dst:             SetLastError
    - functionName:    TransmitCommChar
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 986
      functionLinenumberEnd: 1000
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          44
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - CommInitialized
        - CommLog_PrintEx
        - SetLastError
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:989,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:997,2'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:998,2'
          Dst:             SetLastError
    - functionName:    EscapeCommFunction
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 969
      functionLinenumberEnd: 983
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          44
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - CommInitialized
        - CommLog_PrintEx
        - SetLastError
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:972,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:980,2'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:981,2'
          Dst:             SetLastError
    - functionName:    SetupComm
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 947
      functionLinenumberEnd: 966
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          57
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - CommDeviceIoControl
        - CommIsHandleValid
        - CommLog_PrintEx
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:952,7'
          Dst:             CommIsHandleValid
        - Src:             'winpr/libwinpr/comm/comm.c:958,7'
          Dst:             CommDeviceIoControl
        - Src:             'winpr/libwinpr/comm/comm.c:961,3'
          Dst:             CommLog_PrintEx
    - functionName:    CommIsHandleValid
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1467
      functionLinenumberEnd: 1477
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          45
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - CommIsHandled
        - SetLastError
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:1469,7'
          Dst:             CommIsHandled
        - Src:             'winpr/libwinpr/comm/comm.c:1473,3'
          Dst:             SetLastError
    - functionName:    PurgeComm
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 929
      functionLinenumberEnd: 944
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          48
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - CommDeviceIoControl
        - CommIsHandleValid
        - CommLog_PrintEx
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:933,7'
          Dst:             CommIsHandleValid
        - Src:             'winpr/libwinpr/comm/comm.c:936,7'
          Dst:             CommDeviceIoControl
        - Src:             'winpr/libwinpr/comm/comm.c:939,3'
          Dst:             CommLog_PrintEx
    - functionName:    ClearCommError
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 912
      functionLinenumberEnd: 926
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          46
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - CommInitialized
        - CommLog_PrintEx
        - SetLastError
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:915,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:923,2'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:924,2'
          Dst:             SetLastError
    - functionName:    ClearCommBreak
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 894
      functionLinenumberEnd: 908
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          42
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - CommInitialized
        - CommLog_PrintEx
        - SetLastError
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:897,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:905,2'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:906,2'
          Dst:             SetLastError
    - functionName:    SetCommBreak
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 877
      functionLinenumberEnd: 891
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          42
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - CommInitialized
        - CommLog_PrintEx
        - SetLastError
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:880,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:888,2'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:889,2'
          Dst:             SetLastError
    - functionName:    SetDefaultCommConfigW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 866
      functionLinenumberEnd: 874
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - CommInitialized
        - CommLog_PrintEx
        - SetLastError
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:867,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:871,2'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:872,2'
          Dst:             SetLastError
    - functionName:    SetDefaultCommConfigA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 854
      functionLinenumberEnd: 862
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - CommInitialized
        - CommLog_PrintEx
        - SetLastError
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:855,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:859,2'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:860,2'
          Dst:             SetLastError
    - functionName:    GetDefaultCommConfigW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 842
      functionLinenumberEnd: 850
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - CommInitialized
        - CommLog_PrintEx
        - SetLastError
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:843,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:847,2'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:848,2'
          Dst:             SetLastError
    - functionName:    GetDefaultCommConfigA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 830
      functionLinenumberEnd: 838
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - CommInitialized
        - CommLog_PrintEx
        - SetLastError
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:831,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:835,2'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:836,2'
          Dst:             SetLastError
    - functionName:    SetCommTimeouts
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 809
      functionLinenumberEnd: 826
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          49
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - CommDeviceIoControl
        - CommIsHandleValid
        - CommLog_PrintEx
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:813,7'
          Dst:             CommIsHandleValid
        - Src:             'winpr/libwinpr/comm/comm.c:818,7'
          Dst:             CommDeviceIoControl
        - Src:             'winpr/libwinpr/comm/comm.c:821,3'
          Dst:             CommLog_PrintEx
    - functionName:    GetCommTimeouts
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 785
      functionLinenumberEnd: 802
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          49
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - CommDeviceIoControl
        - CommIsHandleValid
        - CommLog_PrintEx
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:789,7'
          Dst:             CommIsHandleValid
        - Src:             'winpr/libwinpr/comm/comm.c:794,7'
          Dst:             CommDeviceIoControl
        - Src:             'winpr/libwinpr/comm/comm.c:797,3'
          Dst:             CommLog_PrintEx
    - functionName:    SetCommState
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 564
      functionLinenumberEnd: 778
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         66
      ICount:          504
      EdgeCount:       84
      CyclomaticComplexity: 20
      functionsReached:
        - CommDeviceIoControl
        - CommIsHandleValid
        - CommLog_PrintEx
        - SetLastError
        - comm_ioctl_tcsetattr
        - tcgetattr
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:640,2'
          Branch Sides:    []
        - Branch String:   'winpr/libwinpr/comm/comm.c:690,2'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:571,7'
          Dst:             CommIsHandleValid
        - Src:             'winpr/libwinpr/comm/comm.c:576,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:586,7'
          Dst:             CommDeviceIoControl
        - Src:             'winpr/libwinpr/comm/comm.c:589,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:595,7'
          Dst:             CommDeviceIoControl
        - Src:             'winpr/libwinpr/comm/comm.c:599,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:609,7'
          Dst:             CommDeviceIoControl
        - Src:             'winpr/libwinpr/comm/comm.c:612,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:621,7'
          Dst:             CommDeviceIoControl
        - Src:             'winpr/libwinpr/comm/comm.c:624,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:655,4'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:693,4'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:710,4'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:725,7'
          Dst:             CommDeviceIoControl
        - Src:             'winpr/libwinpr/comm/comm.c:728,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:734,6'
          Dst:             tcgetattr
        - Src:             'winpr/libwinpr/comm/comm.c:737,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:748,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:771,6'
          Dst:             comm_ioctl_tcsetattr
        - Src:             'winpr/libwinpr/comm/comm.c:773,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: 405
      functionLinenumberEnd: 550
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         80
      ICount:          615
      EdgeCount:       100
      CyclomaticComplexity: 22
      functionsReached:
        - CommDeviceIoControl
        - CommIsHandleValid
        - CommLog_PrintEx
        - SetLastError
        - calloc
        - tcgetattr
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:411,7'
          Dst:             CommIsHandleValid
        - Src:             'winpr/libwinpr/comm/comm.c:416,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:422,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:426,6'
          Dst:             tcgetattr
        - Src:             'winpr/libwinpr/comm/comm.c:428,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:432,21'
          Dst:             calloc
        - Src:             'winpr/libwinpr/comm/comm.c:436,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:444,7'
          Dst:             CommDeviceIoControl
        - Src:             'winpr/libwinpr/comm/comm.c:447,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:456,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:462,7'
          Dst:             CommDeviceIoControl
        - Src:             'winpr/libwinpr/comm/comm.c:465,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:510,23'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm.c:510,23'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm.c:511,24'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm.c:511,24'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm.c:516,8'
          Dst:             CommDeviceIoControl
        - Src:             'winpr/libwinpr/comm/comm.c:519,4'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:531,8'
          Dst:             CommDeviceIoControl
        - Src:             'winpr/libwinpr/comm/comm.c:534,4'
          Dst:             CommLog_PrintEx
    - functionName:    GetCommProperties
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 378
      functionLinenumberEnd: 393
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          49
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - CommDeviceIoControl
        - CommIsHandleValid
        - CommLog_PrintEx
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:382,7'
          Dst:             CommIsHandleValid
        - Src:             'winpr/libwinpr/comm/comm.c:385,7'
          Dst:             CommDeviceIoControl
        - Src:             'winpr/libwinpr/comm/comm.c:388,3'
          Dst:             CommLog_PrintEx
    - functionName:    GetCommModemStatus
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 356
      functionLinenumberEnd: 370
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          44
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - CommInitialized
        - CommLog_PrintEx
        - SetLastError
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:359,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:367,2'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:368,2'
          Dst:             SetLastError
    - functionName:    SetCommMask
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 339
      functionLinenumberEnd: 353
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          44
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - CommInitialized
        - CommLog_PrintEx
        - SetLastError
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:342,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:350,2'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:351,2'
          Dst:             SetLastError
    - functionName:    GetCommMask
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 322
      functionLinenumberEnd: 336
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          44
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - CommInitialized
        - CommLog_PrintEx
        - SetLastError
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:325,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:333,2'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:334,2'
          Dst:             SetLastError
    - functionName:    SetCommConfig
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 305
      functionLinenumberEnd: 319
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          46
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - CommInitialized
        - CommLog_PrintEx
        - SetLastError
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:308,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:316,2'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:317,2'
          Dst:             SetLastError
    - functionName:    GetCommConfig
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 287
      functionLinenumberEnd: 301
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          46
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - CommInitialized
        - CommLog_PrintEx
        - SetLastError
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:290,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:298,2'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:299,2'
          Dst:             SetLastError
    - functionName:    CommConfigDialogW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 275
      functionLinenumberEnd: 283
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - CommInitialized
        - CommLog_PrintEx
        - SetLastError
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:276,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:280,2'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:281,2'
          Dst:             SetLastError
    - functionName:    CommConfigDialogA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 263
      functionLinenumberEnd: 271
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - CommInitialized
        - CommLog_PrintEx
        - SetLastError
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:264,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:268,2'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:269,2'
          Dst:             SetLastError
    - functionName:    BuildCommDCBAndTimeoutsW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 251
      functionLinenumberEnd: 259
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - CommInitialized
        - CommLog_PrintEx
        - SetLastError
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:252,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:256,2'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:257,2'
          Dst:             SetLastError
    - functionName:    BuildCommDCBAndTimeoutsA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 239
      functionLinenumberEnd: 247
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - CommInitialized
        - CommLog_PrintEx
        - SetLastError
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:240,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:244,2'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:245,2'
          Dst:             SetLastError
    - functionName:    BuildCommDCBW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 227
      functionLinenumberEnd: 235
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - CommInitialized
        - CommLog_PrintEx
        - SetLastError
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:228,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:232,2'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:233,2'
          Dst:             SetLastError
    - functionName:    BuildCommDCBA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 216
      functionLinenumberEnd: 224
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - CommInitialized
        - CommLog_PrintEx
        - SetLastError
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:217,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:221,2'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:222,2'
          Dst:             SetLastError
    - functionName:    CommCreateFileA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1283
      functionLinenumberEnd: 1456
      functionDepth:   0
      returnType:      'N/A'
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         44
      ICount:          320
      EdgeCount:       62
      CyclomaticComplexity: 20
      functionsReached:
        - CloseHandle
        - CommInitialized
        - CommLog_PrintEx
        - CommUpdateIOCount
        - InitializeCriticalSection
        - QueryCommDevice
        - SetLastError
        - WINPR_HANDLE_SET_TYPE_AND_MODE
        - calloc
        - comm_eventfd_cloexec
        - comm_ioctl_tcsetattr
        - open64
        - stat64
        - tcgetattr
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:1289,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:1294,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:1300,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1309,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:1315,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1319,6'
          Dst:             QueryCommDevice
        - Src:             'winpr/libwinpr/comm/comm.c:1325,6'
          Dst:             stat64
        - Src:             'winpr/libwinpr/comm/comm.c:1327,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:1328,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1334,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:1335,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1341,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:1347,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1351,23'
          Dst:             calloc
        - Src:             'winpr/libwinpr/comm/comm.c:1355,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1359,2'
          Dst:             WINPR_HANDLE_SET_TYPE_AND_MODE
        - Src:             'winpr/libwinpr/comm/comm.c:1362,14'
          Dst:             open64
        - Src:             'winpr/libwinpr/comm/comm.c:1366,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:1367,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1371,19'
          Dst:             open64
        - Src:             'winpr/libwinpr/comm/comm.c:1375,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:1376,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1381,25'
          Dst:             comm_eventfd_cloexec
        - Src:             'winpr/libwinpr/comm/comm.c:1386,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:1387,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1391,2'
          Dst:             InitializeCriticalSection
        - Src:             'winpr/libwinpr/comm/comm.c:1392,20'
          Dst:             open64
        - Src:             'winpr/libwinpr/comm/comm.c:1396,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:1397,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1402,26'
          Dst:             comm_eventfd_cloexec
        - Src:             'winpr/libwinpr/comm/comm.c:1407,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm.c:1408,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1412,2'
          Dst:             InitializeCriticalSection
        - Src:             'winpr/libwinpr/comm/comm.c:1415,2'
          Dst:             InitializeCriticalSection
        - Src:             'winpr/libwinpr/comm/comm.c:1417,8'
          Dst:             CommUpdateIOCount
        - Src:             'winpr/libwinpr/comm/comm.c:1424,6'
          Dst:             tcgetattr
        - Src:             'winpr/libwinpr/comm/comm.c:1426,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1444,6'
          Dst:             comm_ioctl_tcsetattr
        - Src:             'winpr/libwinpr/comm/comm.c:1446,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1453,53'
          Dst:             CloseHandle
    - functionName:    IsCommDevice
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1189
      functionLinenumberEnd: 1201
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          41
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - CommInitialized
        - QueryCommDevice
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:1192,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:1195,6'
          Dst:             QueryCommDevice
    - functionName:    GetCommHandleCreator
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 154
      functionLinenumberEnd: 158
      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: 132
      functionLinenumberEnd: 141
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          47
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    comm_ioctl_modem_flag_str
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_ioctl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 712
      functionLinenumberEnd: 734
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          57
      EdgeCount:       20
      CyclomaticComplexity: 11
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:713,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    comm_ioctl_modem_status_string
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_ioctl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 737
      functionLinenumberEnd: 758
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          78
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - comm_ioctl_modem_flag_str
        - snprintf
        - winpr_str_append
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:742,2'
          Dst:             winpr_str_append
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:750,21'
          Dst:             comm_ioctl_modem_flag_str
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:750,4'
          Dst:             winpr_str_append
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:756,8'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:757,2'
          Dst:             winpr_str_append
    - functionName:    comm_ioctl_tcsetattr
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_ioctl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 682
      functionLinenumberEnd: 709
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          104
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - CommLog_PrintEx
        - __errno_location
        - memcmp
        - tcgetattr
        - tcsetattr
        - winpr_strerror
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:687,19'
          Dst:             tcsetattr
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:691,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:691,4'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:691,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:691,4'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:697,19'
          Dst:             tcgetattr
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:701,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:701,4'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:701,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:701,4'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:706,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:    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:    14
      BranchProfiles:  []
      Callsites:       []
    - functionName:    s_CommDeviceIoControl
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_ioctl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 56
      functionLinenumberEnd: 617
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         306
      ICount:          1528
      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:89,2'
          Branch Sides:    []
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:113,2'
          Branch Sides:    []
      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:78,2'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:82,2'
          Dst:             _comm_serial_ioctl_name
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:82,2'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:92,26'
          Dst:             SerialSys_s
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:96,26'
          Dst:             SerCxSys_s
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:100,26'
          Dst:             SerCx2Sys_s
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:105,4'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:107,26'
          Dst:             SerCx2Sys_s
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:111,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:120,4'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:129,5'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:132,6'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:146,5'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:149,6'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:167,5'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:170,6'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:188,5'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:191,6'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:205,5'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:208,6'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:226,5'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:229,6'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:243,5'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:246,6'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:264,5'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:267,6'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:281,5'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:284,6'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:302,5'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:305,6'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:319,5'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:322,6'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:372,5'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:375,6'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:382,5'
          Dst:             comm_ioctl_modem_status_string
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:382,5'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:395,5'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:398,6'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:403,5'
          Dst:             CommSerialEvString
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:403,5'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:415,5'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:418,6'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:425,5'
          Dst:             CommSerialEvString
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:425,5'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:438,5'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:441,6'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:448,5'
          Dst:             CommSerialEvString
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:448,5'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:460,5'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:463,6'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:477,5'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:480,6'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:494,5'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:497,6'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:547,5'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:550,6'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:568,5'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:571,6'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:589,5'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:592,6'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:612,2'
          Dst:             _comm_serial_ioctl_name
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:612,2'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:615,2'
          Dst:             SetLastError
    - functionName:    CommDeviceIoControl
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_ioctl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 634
      functionLinenumberEnd: 679
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          133
      EdgeCount:       27
      CyclomaticComplexity: 9
      functionsReached:
        - CommIsHandled
        - CommLog_PrintEx
        - SetLastError
        - _comm_serial_ioctl_name
        - s_CommDeviceIoControl
      functionUses:    14
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:640,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:644,7'
          Dst:             CommIsHandled
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:649,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:653,11'
          Dst:             s_CommDeviceIoControl
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:659,3'
          Dst:             _comm_serial_ioctl_name
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:659,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:670,4'
          Dst:             _comm_serial_ioctl_name
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:670,4'
          Dst:             CommLog_PrintEx
    - functionName:    consume_event
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1431
      functionLinenumberEnd: 1440
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          81
      EdgeCount:       22
      CyclomaticComplexity: 4
      functionsReached:
        - winpr_int_assert
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1432,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1433,2'
          Dst:             winpr_int_assert
    - functionName:    unlock_return
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1443
      functionLinenumberEnd: 1447
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - EnterCriticalSection
        - LeaveCriticalSection
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1444,2'
          Dst:             EnterCriticalSection
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1446,2'
          Dst:             LeaveCriticalSection
    - functionName:    refresh_PendingEvents
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1421
      functionLinenumberEnd: 1427
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          32
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - get_commstatus
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1424,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1427,10'
          Dst:             get_commstatus
    - functionName:    get_commstatus
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1257
      functionLinenumberEnd: 1417
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         74
      ICount:          481
      EdgeCount:       95
      CyclomaticComplexity: 23
      functionsReached:
        - CommIoCtl_int
        - CommUpdateIOCount
        - EnterCriticalSection
        - LeaveCriticalSection
        - get_raw_modemstatus
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      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:1332,8'
          Dst:             CommIoCtl_int
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1336,8'
          Dst:             CommIoCtl_int
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1342,8'
          Dst:             CommIoCtl_int
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1416,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:
        - ''
        - ''
      BBCount:         15
      ICount:          55
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - CommIoCtl_int
        - CommLog_PrintEx
        - get_modem_status_str
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      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:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          78
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - get_modem_flag_str
        - snprintf
        - winpr_str_append
      functionUses:    1
      BranchProfiles:  []
      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:
        - ''
      BBCount:         24
      ICount:          123
      EdgeCount:       34
      CyclomaticComplexity: 12
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      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:
        - ''
      BBCount:         9
      ICount:          44
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - EnterCriticalSection
        - LeaveCriticalSection
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      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:
        - ''
        - ''
      BBCount:         9
      ICount:          32
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - CommIoCtl_int
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      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:
        - ''
        - ''
      BBCount:         9
      ICount:          32
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - CommIoCtl_int
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      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: 1616
      functionLinenumberEnd: 1625
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          38
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - CommIoCtl_int
        - CommUpdateIOCount
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1618,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1623,8'
          Dst:             CommUpdateIOCount
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1625,9'
          Dst:             CommIoCtl_int
    - functionName:    immediate_char
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1595
      functionLinenumberEnd: 1612
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          64
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - CommWriteFile
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1599,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1600,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1608,11'
          Dst:             CommWriteFile
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1610,2'
          Dst:             winpr_int_assert
    - functionName:    config_size
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1582
      functionLinenumberEnd: 1592
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          56
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1583,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1584,2'
          Dst:             winpr_int_assert
    - functionName:    get_dtrrts
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1562
      functionLinenumberEnd: 1579
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          91
      EdgeCount:       27
      CyclomaticComplexity: 5
      functionsReached:
        - get_raw_modemstatus
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1565,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1566,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1568,7'
          Dst:             get_raw_modemstatus
    - functionName:    set_xon
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1546
      functionLinenumberEnd: 1559
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          54
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - CommLog_PrintEx
        - SetLastError
        - __errno_location
        - tcflow
        - winpr_int_assert
        - winpr_strerror
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1547,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1549,6'
          Dst:             tcflow
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1552,3'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1552,3'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1552,3'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1552,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1554,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: 1530
      functionLinenumberEnd: 1543
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          54
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - CommLog_PrintEx
        - SetLastError
        - __errno_location
        - tcflow
        - winpr_int_assert
        - winpr_strerror
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1531,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1533,6'
          Dst:             tcflow
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1536,3'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1536,3'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1536,3'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1536,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1538,3'
          Dst:             SetLastError
    - functionName:    set_break_off
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1523
      functionLinenumberEnd: 1526
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          30
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - CommIoCtl_int
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1524,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1526,9'
          Dst:             CommIoCtl_int
    - functionName:    set_break_on
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1517
      functionLinenumberEnd: 1519
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          30
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - CommIoCtl_int
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1518,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1519,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:
        - ''
        - ''
      BBCount:         58
      ICount:          254
      EdgeCount:       69
      CyclomaticComplexity: 13
      functionsReached:
        - CommLog_PrintEx
        - SetLastError
        - __errno_location
        - eventfd_write
        - tcflush
        - winpr_int_assert
        - winpr_strerror
      functionUses:    0
      BranchProfiles:  []
      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:
        - ''
        - ''
      BBCount:         27
      ICount:          105
      EdgeCount:       31
      CyclomaticComplexity: 6
      functionsReached:
        - CommLog_PrintEx
        - SetLastError
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      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: 1454
      functionLinenumberEnd: 1514
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         30
      ICount:          145
      EdgeCount:       33
      CyclomaticComplexity: 5
      functionsReached:
        - EnterCriticalSection
        - LeaveCriticalSection
        - Sleep
        - consume_event
        - refresh_PendingEvents
        - unlock_return
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1455,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1456,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1458,2'
          Dst:             EnterCriticalSection
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1460,2'
          Dst:             LeaveCriticalSection
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1465,8'
          Dst:             refresh_PendingEvents
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1466,11'
          Dst:             unlock_return
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1469,3'
          Dst:             EnterCriticalSection
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1478,4'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1480,4'
          Dst:             LeaveCriticalSection
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1484,3'
          Dst:             consume_event
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1485,3'
          Dst:             consume_event
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1486,3'
          Dst:             consume_event
        - 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:1494,3'
          Dst:             LeaveCriticalSection
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1510,3'
          Dst:             Sleep
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1513,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:
        - ''
        - ''
      BBCount:         15
      ICount:          47
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      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:
        - ''
        - ''
      BBCount:         29
      ICount:          158
      EdgeCount:       34
      CyclomaticComplexity: 7
      functionsReached:
        - CommLog_PrintEx
        - CommUpdateIOCount
        - EnterCriticalSection
        - LeaveCriticalSection
        - Sleep
        - is_wait_set
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      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:
        - ''
        - ''
      BBCount:         18
      ICount:          101
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - get_raw_modemstatus
      functionUses:    0
      BranchProfiles:  []
      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:
        - ''
      BBCount:         14
      ICount:          58
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - SetLastError
        - clear_lines
        - get_handflow
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      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:
        - ''
        - ''
      BBCount:         42
      ICount:          228
      EdgeCount:       51
      CyclomaticComplexity: 11
      functionsReached:
        - SetLastError
        - tcgetattr
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      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:
        - ''
      BBCount:         14
      ICount:          58
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - SetLastError
        - get_handflow
        - set_lines
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      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:
        - ''
      BBCount:         20
      ICount:          73
      EdgeCount:       22
      CyclomaticComplexity: 4
      functionsReached:
        - SetLastError
        - clear_lines
        - get_handflow
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      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:
        - ''
      BBCount:         20
      ICount:          73
      EdgeCount:       22
      CyclomaticComplexity: 4
      functionsReached:
        - SetLastError
        - get_handflow
        - set_lines
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      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:
        - ''
        - ''
      BBCount:         15
      ICount:          77
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      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:
        - ''
        - ''
      BBCount:         21
      ICount:          132
      EdgeCount:       23
      CyclomaticComplexity: 4
      functionsReached:
        - CommLog_PrintEx
        - SetLastError
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      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:
        - ''
        - ''
      BBCount:         87
      ICount:          518
      EdgeCount:       112
      CyclomaticComplexity: 27
      functionsReached:
        - CommLog_PrintEx
        - GetLastError
        - SetLastError
        - comm_ioctl_tcsetattr
        - tcgetattr
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      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:
        - ''
        - ''
      BBCount:         29
      ICount:          153
      EdgeCount:       31
      CyclomaticComplexity: 4
      functionsReached:
        - SetLastError
        - tcgetattr
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:607,2'
          Branch Sides:    []
      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:
        - ''
        - ''
      BBCount:         38
      ICount:          250
      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:486,2'
          Branch Sides:    []
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:507,2'
          Branch Sides:    []
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:539,2'
          Branch Sides:    []
      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:
        - ''
        - ''
      BBCount:         18
      ICount:          75
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - SetLastError
        - tcgetattr
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      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:
        - ''
        - ''
      BBCount:         32
      ICount:          185
      EdgeCount:       38
      CyclomaticComplexity: 8
      functionsReached:
        - CommLog_PrintEx
        - GetLastError
        - SetLastError
        - comm_ioctl_tcsetattr
        - tcgetattr
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      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:
        - ''
        - ''
      BBCount:         22
      ICount:          129
      EdgeCount:       24
      CyclomaticComplexity: 4
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      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:
        - ''
        - ''
      BBCount:         24
      ICount:          109
      EdgeCount:       27
      CyclomaticComplexity: 5
      functionsReached:
        - CommLog_PrintEx
        - SetLastError
        - cfgetispeed
        - tcgetattr
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      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:
        - ''
        - ''
      BBCount:         34
      ICount:          152
      EdgeCount:       39
      CyclomaticComplexity: 7
      functionsReached:
        - CommLog_PrintEx
        - GetLastError
        - SetLastError
        - cfgetispeed
        - cfsetspeed
        - comm_ioctl_tcsetattr
        - tcgetattr
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      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: 1664
      functionLinenumberEnd: 1665
      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:
        - ''
        - ''
      BBCount:         12
      ICount:          69
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - CommLog_PrintEx
        - SerialSys_s
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      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:
        - ''
        - ''
      BBCount:         3
      ICount:          43
      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:
        - ''
        - ''
      BBCount:         39
      ICount:          232
      EdgeCount:       51
      CyclomaticComplexity: 14
      functionsReached:
        - CommLog_PrintEx
        - SerialSys_s
        - SetLastError
      functionUses:    0
      BranchProfiles:  []
      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:          133
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - SerialSys_s
      functionUses:    2
      BranchProfiles:  []
      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:
        - ''
        - ''
      BBCount:         32
      ICount:          120
      EdgeCount:       36
      CyclomaticComplexity: 6
      functionsReached:
        - CommLog_PrintEx
        - SerialSys_s
        - SetLastError
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      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:
        - ''
        - ''
      BBCount:         24
      ICount:          93
      EdgeCount:       25
      CyclomaticComplexity: 3
      functionsReached:
        - CommLog_PrintEx
        - SerialSys_s
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      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:
        - ''
        - ''
      BBCount:         15
      ICount:          44
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      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:
        - ''
        - ''
      BBCount:         15
      ICount:          42
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      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:          128
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - SerCxSys_s
        - SerialSys_s
      functionUses:    2
      BranchProfiles:  []
      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:
        - ''
      BBCount:         8
      ICount:          50
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - NamedPipeIsHandled
      functionUses:    0
      BranchProfiles:  []
      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:
        - ''
      BBCount:         3
      ICount:          15
      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: 122
      functionLinenumberEnd: 139
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          76
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - SetLastError
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/pipe/../handle/handle.h:134,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:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          99
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - SetLastError
        - WLog_Print_dbg_tag
        - __errno_location
        - write
      functionUses:    0
      BranchProfiles:  []
      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: 323
      functionLinenumberEnd: 335
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          65
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintTextMessageVA
      functionUses:    21
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:326,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:328,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:332,4'
          Dst:             WLog_PrintTextMessageVA
    - 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:    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:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          115
      EdgeCount:       26
      CyclomaticComplexity: 6
      functionsReached:
        - SetLastError
        - WLog_Print_dbg_tag
        - __errno_location
        - read
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:137,3'
          Branch Sides:    []
      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: 87
      functionLinenumberEnd: 94
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - PipeIsHandled
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/pipe/pipe.c:90,7'
          Dst:             PipeIsHandled
    - functionName:    PipeIsHandled
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 82
      functionLinenumberEnd: 83
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WINPR_HANDLE_IS_HANDLED
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/pipe/pipe.c:83,9'
          Dst:             WINPR_HANDLE_IS_HANDLED
    - functionName:    PipeCloseHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 97
      functionLinenumberEnd: 110
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          51
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - PipeIsHandled
        - close
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/pipe/pipe.c:100,7'
          Dst:             PipeIsHandled
        - Src:             'winpr/libwinpr/pipe/pipe.c:105,3'
          Dst:             close
    - functionName:    GetNamedPipeClientComputerNameW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 977
      functionLinenumberEnd: 980
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - SetLastError
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/pipe/pipe.c:978,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/pipe/pipe.c:979,2'
          Dst:             SetLastError
    - functionName:    GetNamedPipeClientComputerNameA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 968
      functionLinenumberEnd: 971
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - SetLastError
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/pipe/pipe.c:969,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/pipe/pipe.c:970,2'
          Dst:             SetLastError
    - functionName:    ImpersonateNamedPipeClient
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 959
      functionLinenumberEnd: 962
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - SetLastError
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/pipe/pipe.c:960,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/pipe/pipe.c:961,2'
          Dst:             SetLastError
    - functionName:    SetNamedPipeHandleState
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 919
      functionLinenumberEnd: 956
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          144
      EdgeCount:       33
      CyclomaticComplexity: 10
      functionsReached:
        - fcntl64
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/pipe/pipe.c:933,11'
          Dst:             fcntl64
        - Src:             'winpr/libwinpr/pipe/pipe.c:943,7'
          Dst:             fcntl64
    - functionName:    WaitNamedPipeW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 909
      functionLinenumberEnd: 912
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - SetLastError
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/pipe/pipe.c:910,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/pipe/pipe.c:911,2'
          Dst:             SetLastError
    - functionName:    WaitNamedPipeA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 871
      functionLinenumberEnd: 906
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          95
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - GetNamedPipeUnixDomainSocketFilePathA
        - Sleep
        - winpr_PathFileExists
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/pipe/pipe.c:880,15'
          Dst:             GetNamedPipeUnixDomainSocketFilePathA
        - Src:             'winpr/libwinpr/pipe/pipe.c:892,10'
          Dst:             winpr_PathFileExists
        - Src:             'winpr/libwinpr/pipe/pipe.c:894,3'
          Dst:             Sleep
    - functionName:    TransactNamedPipe
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 864
      functionLinenumberEnd: 867
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - SetLastError
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/pipe/pipe.c:865,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/pipe/pipe.c:866,2'
          Dst:             SetLastError
    - functionName:    PeekNamedPipe
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 853
      functionLinenumberEnd: 856
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - SetLastError
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/pipe/pipe.c:854,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/pipe/pipe.c:855,2'
          Dst:             SetLastError
    - functionName:    DisconnectNamedPipe
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 836
      functionLinenumberEnd: 846
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - close
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/pipe/pipe.c:842,3'
          Dst:             close
    - functionName:    ConnectNamedPipe
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 771
      functionLinenumberEnd: 833
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          125
      EdgeCount:       23
      CyclomaticComplexity: 8
      functionsReached:
        - SetEvent
        - SetLastError
        - WLog_Print_dbg_tag
        - accept4
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/pipe/pipe.c:778,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/pipe/pipe.c:779,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/pipe/pipe.c:793,12'
          Dst:             accept4
        - Src:             'winpr/libwinpr/pipe/pipe.c:800,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/pipe/pipe.c:829,9'
          Dst:             SetEvent
    - functionName:    accept4
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    CreateNamedPipeW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 764
      functionLinenumberEnd: 767
      functionDepth:   0
      returnType:      'N/A'
      argCount:        8
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - SetLastError
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/pipe/pipe.c:765,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/pipe/pipe.c:766,2'
          Dst:             SetLastError
    - functionName:    NamedPipeCloseHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 222
      functionLinenumberEnd: 256
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          113
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - NamedPipeIsHandled
        - close
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/pipe/pipe.c:229,7'
          Dst:             NamedPipeIsHandled
        - Src:             'winpr/libwinpr/pipe/pipe.c:245,3'
          Dst:             close
        - Src:             'winpr/libwinpr/pipe/pipe.c:251,3'
          Dst:             close
    - functionName:    winpr_unref_named_pipe
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 537
      functionLinenumberEnd: 574
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         46
      ICount:          162
      EdgeCount:       50
      CyclomaticComplexity: 6
      functionsReached:
        - ArrayList_Count
        - ArrayList_GetItem
        - ArrayList_Lock
        - ArrayList_Remove
        - ArrayList_Unlock
        - close
        - strcmp
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/pipe/pipe.c:543,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/pipe/pipe.c:544,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/pipe/pipe.c:546,2'
          Dst:             ArrayList_Lock
        - Src:             'winpr/libwinpr/pipe/pipe.c:548,33'
          Dst:             ArrayList_Count
        - Src:             'winpr/libwinpr/pipe/pipe.c:551,36'
          Dst:             ArrayList_GetItem
        - Src:             'winpr/libwinpr/pipe/pipe.c:552,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/pipe/pipe.c:554,8'
          Dst:             strcmp
        - Src:             'winpr/libwinpr/pipe/pipe.c:556,4'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/pipe/pipe.c:557,4'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/pipe/pipe.c:563,5'
          Dst:             ArrayList_Remove
        - Src:             'winpr/libwinpr/pipe/pipe.c:564,5'
          Dst:             close
        - Src:             'winpr/libwinpr/pipe/pipe.c:573,2'
          Dst:             ArrayList_Unlock
    - functionName:    InitWinPRPipeModule
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 465
      functionLinenumberEnd: 471
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ArrayList_New
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/pipe/pipe.c:469,29'
          Dst:             ArrayList_New
    - functionName:    CreateNamedPipeA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 579
      functionLinenumberEnd: 756
      functionDepth:   0
      returnType:      'N/A'
      argCount:        8
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         59
      ICount:          442
      EdgeCount:       82
      CyclomaticComplexity: 25
      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
        - fcntl64
        - listen
        - snprintf
        - socket
        - strcmp
        - winpr_DeleteFile
        - winpr_PathFileExists
        - winpr_set_cloexec
        - winpr_strerror
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/pipe/pipe.c:589,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/pipe/pipe.c:590,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/pipe/pipe.c:597,7'
          Dst:             InitWinPRPipeModule
        - Src:             'winpr/libwinpr/pipe/pipe.c:600,34'
          Dst:             calloc
        - Src:             'winpr/libwinpr/pipe/pipe.c:605,2'
          Dst:             ArrayList_Lock
        - Src:             'winpr/libwinpr/pipe/pipe.c:606,2'
          Dst:             WINPR_HANDLE_SET_TYPE_AND_MODE
        - Src:             'winpr/libwinpr/pipe/pipe.c:610,27'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/pipe/pipe.c:613,33'
          Dst:             GetNamedPipeNameWithoutPrefixA
        - Src:             'winpr/libwinpr/pipe/pipe.c:616,33'
          Dst:             GetNamedPipeUnixDomainSocketFilePathA
        - Src:             'winpr/libwinpr/pipe/pipe.c:630,33'
          Dst:             ArrayList_Count
        - Src:             'winpr/libwinpr/pipe/pipe.c:633,36'
          Dst:             ArrayList_GetItem
        - Src:             'winpr/libwinpr/pipe/pipe.c:635,8'
          Dst:             strcmp
        - Src:             'winpr/libwinpr/pipe/pipe.c:649,22'
          Dst:             GetNamedPipeUnixDomainSocketBaseFilePathA
        - Src:             'winpr/libwinpr/pipe/pipe.c:652,8'
          Dst:             winpr_PathFileExists
        - Src:             'winpr/libwinpr/pipe/pipe.c:654,9'
          Dst:             CreateDirectoryA
        - Src:             'winpr/libwinpr/pipe/pipe.c:660,4'
          Dst:             UnixChangeFileMode
        - Src:             'winpr/libwinpr/pipe/pipe.c:665,7'
          Dst:             winpr_PathFileExists
        - Src:             'winpr/libwinpr/pipe/pipe.c:666,4'
          Dst:             winpr_DeleteFile
        - Src:             'winpr/libwinpr/pipe/pipe.c:668,19'
          Dst:             socket
        - Src:             'winpr/libwinpr/pipe/pipe.c:671,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/pipe/pipe.c:671,4'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/pipe/pipe.c:671,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/pipe/pipe.c:679,8'
          Dst:             winpr_set_cloexec
        - Src:             'winpr/libwinpr/pipe/pipe.c:681,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/pipe/pipe.c:686,9'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/pipe/pipe.c:688,7'
          Dst:             bind
        - Src:             'winpr/libwinpr/pipe/pipe.c:691,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/pipe/pipe.c:691,4'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/pipe/pipe.c:691,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/pipe/pipe.c:696,7'
          Dst:             listen
        - Src:             'winpr/libwinpr/pipe/pipe.c:699,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/pipe/pipe.c:699,4'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/pipe/pipe.c:699,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/pipe/pipe.c:704,3'
          Dst:             UnixChangeFileMode
        - Src:             'winpr/libwinpr/pipe/pipe.c:709,28'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/pipe/pipe.c:718,8'
          Dst:             ArrayList_Append
        - Src:             'winpr/libwinpr/pipe/pipe.c:732,25'
          Dst:             fcntl64
        - Src:             'winpr/libwinpr/pipe/pipe.c:741,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/pipe/pipe.c:745,2'
          Dst:             ArrayList_Unlock
        - Src:             'winpr/libwinpr/pipe/pipe.c:748,2'
          Dst:             NamedPipeCloseHandle
        - Src:             'winpr/libwinpr/pipe/pipe.c:752,3'
          Dst:             close
        - Src:             'winpr/libwinpr/pipe/pipe.c:754,2'
          Dst:             ArrayList_Unlock
    - functionName:    WINPR_HANDLE_SET_TYPE_AND_MODE
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/../handle/handle.h'
      linkageType:     InternalLinkage
      functionLinenumber: 142
      functionLinenumberEnd: 148
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          24
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    NamedPipeRead
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 260
      functionLinenumberEnd: 345
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          180
      EdgeCount:       40
      CyclomaticComplexity: 10
      functionsReached:
        - SetEvent
        - SetLastError
        - WLog_Print_dbg_tag
        - __errno_location
        - read
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:285,4'
          Branch Sides:    []
      Callsites:
        - 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:305,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/pipe/pipe.c:306,4'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/pipe/pipe.c:340,9'
          Dst:             SetEvent
    - functionName:    NamedPipeWrite
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 349
      functionLinenumberEnd: 440
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          173
      EdgeCount:       35
      CyclomaticComplexity: 9
      functionsReached:
        - SetEvent
        - SetLastError
        - WLog_Print_dbg_tag
        - __errno_location
        - write
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:377,4'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/pipe/pipe.c:356,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/pipe/pipe.c:357,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/pipe/pipe.c:370,16'
          Dst:             write
        - Src:             'winpr/libwinpr/pipe/pipe.c:371,32'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/pipe/pipe.c:377,12'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/pipe/pipe.c:435,9'
          Dst:             SetEvent
    - functionName:    CreatePipe
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 478
      functionLinenumberEnd: 530
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          163
      EdgeCount:       28
      CyclomaticComplexity: 8
      functionsReached:
        - WINPR_HANDLE_SET_TYPE_AND_MODE
        - WLog_Print_dbg_tag
        - calloc
        - close
        - pipe2
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/pipe/pipe.c:492,6'
          Dst:             pipe2
        - Src:             'winpr/libwinpr/pipe/pipe.c:498,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/pipe/pipe.c:502,27'
          Dst:             calloc
        - Src:             'winpr/libwinpr/pipe/pipe.c:503,28'
          Dst:             calloc
        - Src:             'winpr/libwinpr/pipe/pipe.c:507,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/pipe/pipe.c:513,2'
          Dst:             WINPR_HANDLE_SET_TYPE_AND_MODE
        - Src:             'winpr/libwinpr/pipe/pipe.c:516,2'
          Dst:             WINPR_HANDLE_SET_TYPE_AND_MODE
        - Src:             'winpr/libwinpr/pipe/pipe.c:526,3'
          Dst:             close
        - Src:             'winpr/libwinpr/pipe/pipe.c:528,3'
          Dst:             close
    - functionName:    pipe2
      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:    PopEntryList
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/interlocked/interlocked.c'
      linkageType:     InternalLinkage
      functionLinenumber: 535
      functionLinenumberEnd: 542
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          48
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:536,2'
          Dst:             winpr_int_assert
    - functionName:    PushEntryList
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/interlocked/interlocked.c'
      linkageType:     InternalLinkage
      functionLinenumber: 526
      functionLinenumberEnd: 532
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          52
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:527,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:528,2'
          Dst:             winpr_int_assert
    - functionName:    AppendTailList
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/interlocked/interlocked.c'
      linkageType:     InternalLinkage
      functionLinenumber: 513
      functionLinenumberEnd: 523
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          69
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:514,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:515,2'
          Dst:             winpr_int_assert
    - functionName:    RemoveTailList
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/interlocked/interlocked.c'
      linkageType:     InternalLinkage
      functionLinenumber: 497
      functionLinenumberEnd: 509
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          71
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:498,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:501,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:504,2'
          Dst:             winpr_int_assert
    - functionName:    InsertTailList
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/interlocked/interlocked.c'
      linkageType:     InternalLinkage
      functionLinenumber: 483
      functionLinenumberEnd: 494
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          75
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:484,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:485,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:488,2'
          Dst:             winpr_int_assert
    - functionName:    RemoveHeadList
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/interlocked/interlocked.c'
      linkageType:     InternalLinkage
      functionLinenumber: 467
      functionLinenumberEnd: 479
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          71
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:468,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:471,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:474,2'
          Dst:             winpr_int_assert
    - functionName:    InsertHeadList
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/interlocked/interlocked.c'
      linkageType:     InternalLinkage
      functionLinenumber: 453
      functionLinenumberEnd: 464
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          75
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:454,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:455,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:458,2'
          Dst:             winpr_int_assert
    - functionName:    RemoveEntryList
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/interlocked/interlocked.c'
      linkageType:     InternalLinkage
      functionLinenumber: 438
      functionLinenumberEnd: 449
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          74
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:439,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:441,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:444,2'
          Dst:             winpr_int_assert
    - functionName:    IsListEmpty
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/interlocked/interlocked.c'
      linkageType:     InternalLinkage
      functionLinenumber: 432
      functionLinenumberEnd: 434
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          34
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:433,2'
          Dst:             winpr_int_assert
    - functionName:    InitializeListHead
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/interlocked/interlocked.c'
      linkageType:     InternalLinkage
      functionLinenumber: 426
      functionLinenumberEnd: 429
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          35
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:427,2'
          Dst:             winpr_int_assert
    - functionName:    InterlockedCompareExchangePointer
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/interlocked/interlocked.c'
      linkageType:     InternalLinkage
      functionLinenumber: 311
      functionLinenumberEnd: 317
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          40
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:312,2'
          Dst:             winpr_int_assert
    - functionName:    InterlockedCompareExchange
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/interlocked/interlocked.c'
      linkageType:     InternalLinkage
      functionLinenumber: 296
      functionLinenumberEnd: 302
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          37
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:297,2'
          Dst:             winpr_int_assert
    - functionName:    InterlockedExchangeAdd
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/interlocked/interlocked.c'
      linkageType:     InternalLinkage
      functionLinenumber: 282
      functionLinenumberEnd: 288
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          33
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:283,2'
          Dst:             winpr_int_assert
    - functionName:    InterlockedExchange
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/interlocked/interlocked.c'
      linkageType:     InternalLinkage
      functionLinenumber: 268
      functionLinenumberEnd: 274
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          36
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:269,2'
          Dst:             winpr_int_assert
    - functionName:    InterlockedDecrement
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/interlocked/interlocked.c'
      linkageType:     InternalLinkage
      functionLinenumber: 254
      functionLinenumberEnd: 260
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          31
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:255,2'
          Dst:             winpr_int_assert
    - functionName:    InterlockedIncrement
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/interlocked/interlocked.c'
      linkageType:     InternalLinkage
      functionLinenumber: 240
      functionLinenumberEnd: 246
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          31
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:241,2'
          Dst:             winpr_int_assert
    - functionName:    QueryDepthSList
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/interlocked/interlocked.c'
      linkageType:     InternalLinkage
      functionLinenumber: 227
      functionLinenumberEnd: 233
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          31
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:228,2'
          Dst:             winpr_int_assert
    - functionName:    InterlockedFlushSList
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/interlocked/interlocked.c'
      linkageType:     InternalLinkage
      functionLinenumber: 177
      functionLinenumberEnd: 224
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          100
      EdgeCount:       27
      CyclomaticComplexity: 7
      functionsReached:
        - InterlockedCompareExchange64
        - QueryDepthSList
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:181,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:182,7'
          Dst:             QueryDepthSList
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:218,11'
          Dst:             InterlockedCompareExchange64
    - functionName:    InterlockedCompareExchange64
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/interlocked/interlocked.c'
      linkageType:     InternalLinkage
      functionLinenumber: 399
      functionLinenumberEnd: 405
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          37
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:400,2'
          Dst:             winpr_int_assert
    - functionName:    InterlockedPopEntrySList
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/interlocked/interlocked.c'
      linkageType:     InternalLinkage
      functionLinenumber: 121
      functionLinenumberEnd: 174
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          114
      EdgeCount:       27
      CyclomaticComplexity: 7
      functionsReached:
        - InterlockedCompareExchange64
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:126,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:169,11'
          Dst:             InterlockedCompareExchange64
    - functionName:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 323
      functionLinenumberEnd: 335
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          65
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintTextMessageVA
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:326,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:328,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:332,4'
          Dst:             WLog_PrintTextMessageVA
    - functionName:    InterlockedPushListSListEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/interlocked/interlocked.c'
      linkageType:     InternalLinkage
      functionLinenumber: 106
      functionLinenumberEnd: 117
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          59
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - 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:109,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:111,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    InterlockedPushEntrySList
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/interlocked/interlocked.c'
      linkageType:     InternalLinkage
      functionLinenumber: 52
      functionLinenumberEnd: 100
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          120
      EdgeCount:       30
      CyclomaticComplexity: 6
      functionsReached:
        - InterlockedCompareExchange64
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:56,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:57,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:94,11'
          Dst:             InterlockedCompareExchange64
    - functionName:    InitializeSListHead
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/interlocked/interlocked.c'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 48
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          30
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:40,2'
          Dst:             winpr_int_assert
    - functionName:    GetEnvironmentVariableX
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/environment/environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 778
      functionLinenumberEnd: 779
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - GetEnvironmentVariableA
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/environment/environment.c:779,9'
          Dst:             GetEnvironmentVariableA
    - functionName:    GetEnvironmentVariableA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/environment/environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 168
      functionLinenumberEnd: 194
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          75
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - SetLastError
        - getenv
        - strlen
      functionUses:    17
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/environment/environment.c:173,14'
          Dst:             getenv
        - Src:             'winpr/libwinpr/environment/environment.c:177,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/environment/environment.c:181,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: 666
      functionLinenumberEnd: 712
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         26
      ICount:          179
      EdgeCount:       34
      CyclomaticComplexity: 10
      functionsReached:
        - _strdup
        - calloc
        - strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/environment/environment.c:681,12'
          Dst:             strlen
        - Src:             'winpr/libwinpr/environment/environment.c:689,17'
          Dst:             calloc
        - Src:             'winpr/libwinpr/environment/environment.c:696,12'
          Dst:             strlen
        - Src:             'winpr/libwinpr/environment/environment.c:697,17'
          Dst:             _strdup
    - functionName:    SetEnvironmentVariableEBA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/environment/environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 624
      functionLinenumberEnd: 663
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          107
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - MergeEnvironmentStrings
        - snprintf
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/environment/environment.c:634,13'
          Dst:             strlen
        - Src:             'winpr/libwinpr/environment/environment.c:634,30'
          Dst:             strlen
        - Src:             'winpr/libwinpr/environment/environment.c:640,9'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/environment/environment.c:644,12'
          Dst:             strlen
        - Src:             'winpr/libwinpr/environment/environment.c:650,9'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/environment/environment.c:655,10'
          Dst:             MergeEnvironmentStrings
    - functionName:    MergeEnvironmentStrings
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/environment/environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 383
      functionLinenumberEnd: 560
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         87
      ICount:          582
      EdgeCount:       113
      CyclomaticComplexity: 28
      functionsReached:
        - calloc
        - realloc
        - strlen
        - strncmp
        - strstr
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/environment/environment.c:398,26'
          Dst:             calloc
        - Src:             'winpr/libwinpr/environment/environment.c:409,12'
          Dst:             strlen
        - Src:             'winpr/libwinpr/environment/environment.c:416,28'
          Dst:             realloc
        - Src:             'winpr/libwinpr/environment/environment.c:434,31'
          Dst:             calloc
        - Src:             'winpr/libwinpr/environment/environment.c:447,12'
          Dst:             strlen
        - Src:             'winpr/libwinpr/environment/environment.c:452,21'
          Dst:             realloc
        - Src:             'winpr/libwinpr/environment/environment.c:472,18'
          Dst:             strlen
        - Src:             'winpr/libwinpr/environment/environment.c:473,18'
          Dst:             strstr
        - Src:             'winpr/libwinpr/environment/environment.c:479,41'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/environment/environment.c:479,41'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/environment/environment.c:479,8'
          Dst:             strncmp
        - Src:             'winpr/libwinpr/environment/environment.c:493,17'
          Dst:             realloc
        - Src:             'winpr/libwinpr/environment/environment.c:530,17'
          Dst:             strlen
        - Src:             'winpr/libwinpr/environment/environment.c:535,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:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    GetEnvironmentVariableEBA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/environment/environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 563
      functionLinenumberEnd: 621
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         54
      ICount:          267
      EdgeCount:       69
      CyclomaticComplexity: 17
      functionsReached:
        - strlen
        - strncmp
        - strstr
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/environment/environment.c:575,17'
          Dst:             strlen
        - Src:             'winpr/libwinpr/environment/environment.c:582,13'
          Dst:             strlen
        - Src:             'winpr/libwinpr/environment/environment.c:583,17'
          Dst:             strstr
        - Src:             'winpr/libwinpr/environment/environment.c:591,13'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/environment/environment.c:591,13'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/environment/environment.c:599,7'
          Dst:             strncmp
        - Src:             'winpr/libwinpr/environment/environment.c:611,12'
          Dst:             strlen
    - functionName:    FreeEnvironmentStringsW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/environment/environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 374
      functionLinenumberEnd: 377
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ExpandEnvironmentStringsW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/environment/environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 361
      functionLinenumberEnd: 363
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/environment/environment.c:362,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 323
      functionLinenumberEnd: 335
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          65
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintTextMessageVA
      functionUses:    16
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:326,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:328,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:332,4'
          Dst:             WLog_PrintTextMessageVA
    - functionName:    ExpandEnvironmentStringsA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/environment/environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 354
      functionLinenumberEnd: 356
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/environment/environment.c:355,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SetEnvironmentStringsW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/environment/environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 347
      functionLinenumberEnd: 349
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          14
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/environment/environment.c:348,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SetEnvironmentStringsA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/environment/environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 341
      functionLinenumberEnd: 343
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          14
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/environment/environment.c:342,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    FreeEnvironmentStringsA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/environment/environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 367
      functionLinenumberEnd: 370
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    GetEnvironmentStringsW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/environment/environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 330
      functionLinenumberEnd: 338
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ConvertMszUtf8NToWCharAlloc
        - FreeEnvironmentStringsA
        - GetEnvironmentStringsAN
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/environment/environment.c:332,13'
          Dst:             GetEnvironmentStringsAN
        - Src:             'winpr/libwinpr/environment/environment.c:335,15'
          Dst:             ConvertMszUtf8NToWCharAlloc
        - Src:             'winpr/libwinpr/environment/environment.c:336,2'
          Dst:             FreeEnvironmentStringsA
    - functionName:    GetEnvironmentStringsAN
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/environment/environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 255
      functionLinenumberEnd: 322
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         26
      ICount:          185
      EdgeCount:       34
      CyclomaticComplexity: 10
      functionsReached:
        - WLog_Print_dbg_tag
        - calloc
        - realloc
        - strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/environment/environment.c:261,36'
          Dst:             calloc
        - Src:             'winpr/libwinpr/environment/environment.c:271,25'
          Dst:             strlen
        - Src:             'winpr/libwinpr/environment/environment.c:275,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/environment/environment.c:288,25'
          Dst:             realloc
    - functionName:    GetEnvironmentStrings
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/environment/environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 325
      functionLinenumberEnd: 326
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - GetEnvironmentStringsAN
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/environment/environment.c:326,9'
          Dst:             GetEnvironmentStringsAN
    - functionName:    SetEnvironmentVariableW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/environment/environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 230
      functionLinenumberEnd: 232
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/environment/environment.c:231,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SetEnvironmentVariableA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/environment/environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 205
      functionLinenumberEnd: 227
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          59
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - setenv
        - unsetenv
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/environment/environment.c:213,12'
          Dst:             setenv
        - Src:             'winpr/libwinpr/environment/environment.c:219,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: 198
      functionLinenumberEnd: 201
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - SetLastError
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/environment/environment.c:199,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/environment/environment.c:200,2'
          Dst:             SetLastError
    - functionName:    NeedCurrentDirectoryForExePathW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/environment/environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 158
      functionLinenumberEnd: 160
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          14
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/environment/environment.c:159,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    NeedCurrentDirectoryForExePathA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/environment/environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 152
      functionLinenumberEnd: 154
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          14
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/environment/environment.c:153,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    GetCommandLineW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/environment/environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 146
      functionLinenumberEnd: 148
      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:  []
      Callsites:
        - Src:             'winpr/libwinpr/environment/environment.c:147,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    GetCommandLineA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/environment/environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 140
      functionLinenumberEnd: 142
      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:  []
      Callsites:
        - Src:             'winpr/libwinpr/environment/environment.c:141,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SearchPathW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/environment/environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 134
      functionLinenumberEnd: 136
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/environment/environment.c:135,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SearchPathA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/environment/environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 126
      functionLinenumberEnd: 128
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/environment/environment.c:127,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SetCurrentDirectoryW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/environment/environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 118
      functionLinenumberEnd: 120
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          14
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/environment/environment.c:119,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SetCurrentDirectoryA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/environment/environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 112
      functionLinenumberEnd: 114
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          14
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/environment/environment.c:113,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    GetCurrentDirectoryW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/environment/environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 106
      functionLinenumberEnd: 108
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/environment/environment.c:107,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    GetCurrentDirectoryA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/environment/environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 53
      functionLinenumberEnd: 103
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          149
      EdgeCount:       32
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - getcwd
        - realloc
        - strnlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/environment/environment.c:61,15'
          Dst:             realloc
        - Src:             'winpr/libwinpr/environment/environment.c:69,10'
          Dst:             getcwd
        - Src:             'winpr/libwinpr/environment/environment.c:70,21'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/environment/environment.c:78,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_GetConfigFilePathV
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1414
      functionLinenumberEnd: 1419
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_GetConfigFilePathVA
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:1417,14'
          Dst:             winpr_GetConfigFilePathVA
    - functionName:    winpr_GetConfigFilePathVA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1378
      functionLinenumberEnd: 1404
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          111
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - GetCombinedPathV
        - GetCombinedPathVA
        - GetKnownSubPathV
        - winpr_getApplicationDetailsProduct
        - winpr_getApplicationDetailsVendor
        - winpr_getApplicationDetailsVersion
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:1380,23'
          Dst:             winpr_getApplicationDetailsVendor
        - Src:             'winpr/libwinpr/path/path.c:1381,24'
          Dst:             winpr_getApplicationDetailsProduct
        - Src:             'winpr/libwinpr/path/path.c:1382,26'
          Dst:             winpr_getApplicationDetailsVersion
        - Src:             'winpr/libwinpr/path/path.c:1387,17'
          Dst:             GetKnownSubPathV
        - Src:             'winpr/libwinpr/path/path.c:1393,10'
          Dst:             GetCombinedPathV
        - Src:             'winpr/libwinpr/path/path.c:1395,10'
          Dst:             GetCombinedPathV
        - Src:             'winpr/libwinpr/path/path.c:1400,15'
          Dst:             GetCombinedPathVA
    - functionName:    winpr_GetConfigFilePath
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1407
      functionLinenumberEnd: 1411
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_GetConfigFilePathV
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:1409,10'
          Dst:             winpr_GetConfigFilePathV
        - Src:             'winpr/libwinpr/path/path.c:1410,9'
          Dst:             winpr_GetConfigFilePathV
    - functionName:    winpr_RemoveDirectory_RecursiveW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1368
      functionLinenumberEnd: 1375
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ConvertWCharToUtf8Alloc
        - winpr_RemoveDirectory_RecursiveA
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:1369,15'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/path/path.c:1372,18'
          Dst:             winpr_RemoveDirectory_RecursiveA
    - functionName:    winpr_RemoveDirectory_RecursiveA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1296
      functionLinenumberEnd: 1365
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         47
      ICount:          256
      EdgeCount:       63
      CyclomaticComplexity: 18
      functionsReached:
        - FindClose
        - FindFirstFileA
        - FindNextFileA
        - NativePathCchAppendA
        - calloc
        - concat
        - strlen
        - strncat
        - strnlen
        - winpr_DeleteFile
        - winpr_RemoveDirectory
        - winpr_RemoveDirectory_RecursiveA
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:1302,29'
          Dst:             strlen
        - Src:             'winpr/libwinpr/path/path.c:1304,21'
          Dst:             calloc
        - Src:             'winpr/libwinpr/path/path.c:1307,2'
          Dst:             strncat
        - Src:             'winpr/libwinpr/path/path.c:1310,21'
          Dst:             NativePathCchAppendA
        - Src:             'winpr/libwinpr/path/path.c:1317,9'
          Dst:             FindFirstFileA
        - Src:             'winpr/libwinpr/path/path.c:1326,23'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/path/path.c:1334,21'
          Dst:             concat
        - Src:             'winpr/libwinpr/path/path.c:1339,11'
          Dst:             winpr_RemoveDirectory_RecursiveA
        - Src:             'winpr/libwinpr/path/path.c:1344,11'
          Dst:             winpr_DeleteFile
        - Src:             'winpr/libwinpr/path/path.c:1352,19'
          Dst:             FindNextFileA
        - Src:             'winpr/libwinpr/path/path.c:1357,8'
          Dst:             winpr_RemoveDirectory
        - Src:             'winpr/libwinpr/path/path.c:1362,2'
          Dst:             FindClose
    - functionName:    NativePathCchAppendA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/include/PathCchAppend.h'
      linkageType:     InternalLinkage
      functionLinenumber: 79
      functionLinenumberEnd: 127
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         48
      ICount:          263
      EdgeCount:       65
      CyclomaticComplexity: 19
      functionsReached:
        - HRESULT_FROM_WIN32
        - snprintf
        - strnlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:92,31'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:96,31'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:104,4'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:112,4'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:120,4'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:126,9'
          Dst:             HRESULT_FROM_WIN32
    - functionName:    concat
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1284
      functionLinenumberEnd: 1293
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          53
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - calloc
        - winpr_str_append
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:1286,14'
          Dst:             calloc
        - Src:             'winpr/libwinpr/path/path.c:1290,2'
          Dst:             winpr_str_append
        - Src:             'winpr/libwinpr/path/path.c:1291,2'
          Dst:             winpr_str_append
    - functionName:    HRESULT_FROM_WIN32
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/error.h'
      linkageType:     InternalLinkage
      functionLinenumber: 153
      functionLinenumberEnd: 158
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          32
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    27
      BranchProfiles:  []
      Callsites:       []
    - functionName:    GetKnownPathIdString
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1261
      functionLinenumberEnd: 1281
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          52
      EdgeCount:       18
      CyclomaticComplexity: 10
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/path.c:1262,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    PathGetSharedLibraryExtensionW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1191
      functionLinenumberEnd: 1258
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         24
      ICount:          139
      EdgeCount:       33
      CyclomaticComplexity: 11
      functionsReached:
        - InitializeConstWCharFromUtf8
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:1193,47'
          Dst:             InitializeConstWCharFromUtf8
        - Src:             'winpr/libwinpr/path/path.c:1196,6'
          Dst:             InitializeConstWCharFromUtf8
        - Src:             'winpr/libwinpr/path/path.c:1197,49'
          Dst:             InitializeConstWCharFromUtf8
        - Src:             'winpr/libwinpr/path/path.c:1200,6'
          Dst:             InitializeConstWCharFromUtf8
        - Src:             'winpr/libwinpr/path/path.c:1202,6'
          Dst:             InitializeConstWCharFromUtf8
        - Src:             'winpr/libwinpr/path/path.c:1204,6'
          Dst:             InitializeConstWCharFromUtf8
    - functionName:    PathGetSharedLibraryExtensionA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1135
      functionLinenumberEnd: 1188
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          106
      EdgeCount:       30
      CyclomaticComplexity: 10
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    PathGetSeparatorW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1115
      functionLinenumberEnd: 1122
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    PathGetSeparatorA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1105
      functionLinenumberEnd: 1112
      functionDepth:   0
      returnType:      char
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    PathCchConvertStyleW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1046
      functionLinenumberEnd: 1098
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          153
      EdgeCount:       40
      CyclomaticComplexity: 10
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    PathCchConvertStyleA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 991
      functionLinenumberEnd: 1043
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          153
      EdgeCount:       40
      CyclomaticComplexity: 10
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    PathCchRemoveFileSpecW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 976
      functionLinenumberEnd: 978
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:977,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 323
      functionLinenumberEnd: 335
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          65
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintTextMessageVA
      functionUses:    32
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:326,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:328,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:332,4'
          Dst:             WLog_PrintTextMessageVA
    - functionName:    PathCchRemoveFileSpecA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 970
      functionLinenumberEnd: 972
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:971,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    PathCchStripPrefixW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 928
      functionLinenumberEnd: 963
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         32
      ICount:          176
      EdgeCount:       44
      CyclomaticComplexity: 14
      functionsReached:
        - HRESULT_FROM_WIN32
        - IsCharAlphaW
        - _wcslen
        - wmemmove_s
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:945,22'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/path/path.c:947,11'
          Dst:             HRESULT_FROM_WIN32
        - Src:             'winpr/libwinpr/path/path.c:949,7'
          Dst:             IsCharAlphaW
        - Src:             'winpr/libwinpr/path/path.c:951,8'
          Dst:             wmemmove_s
        - Src:             'winpr/libwinpr/path/path.c:952,12'
          Dst:             HRESULT_FROM_WIN32
    - functionName:    PathCchStripPrefixA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 893
      functionLinenumberEnd: 925
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         30
      ICount:          159
      EdgeCount:       41
      CyclomaticComplexity: 13
      functionsReached:
        - HRESULT_FROM_WIN32
        - IsCharAlphaA
        - memmove_s
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:910,7'
          Dst:             IsCharAlphaA
        - Src:             'winpr/libwinpr/path/path.c:912,8'
          Dst:             memmove_s
        - Src:             'winpr/libwinpr/path/path.c:913,12'
          Dst:             HRESULT_FROM_WIN32
    - functionName:    PathCchStripToRootW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 883
      functionLinenumberEnd: 885
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:884,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    PathCchStripToRootA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 877
      functionLinenumberEnd: 879
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:878,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    PathCchSkipRootW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 867
      functionLinenumberEnd: 869
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:868,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    PathCchSkipRootA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 861
      functionLinenumberEnd: 863
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:862,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    PathIsUNCExW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 843
      functionLinenumberEnd: 854
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          51
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    PathIsUNCExA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 829
      functionLinenumberEnd: 840
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          51
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    PathCchIsRootW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 819
      functionLinenumberEnd: 821
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          14
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:820,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    PathCchIsRootA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 813
      functionLinenumberEnd: 815
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          14
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:814,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    PathCchRemoveExtensionW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 803
      functionLinenumberEnd: 805
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:804,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    PathCchRemoveExtensionA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 797
      functionLinenumberEnd: 799
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:798,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    PathCchRenameExtensionW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 787
      functionLinenumberEnd: 789
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:788,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    PathCchRenameExtensionA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 780
      functionLinenumberEnd: 782
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      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:    PathCchFindExtensionW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 769
      functionLinenumberEnd: 771
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:770,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    PathCchFindExtensionA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 726
      functionLinenumberEnd: 765
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          142
      EdgeCount:       40
      CyclomaticComplexity: 12
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    NativePathAllocCombineW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/include/PathAllocCombine.h'
      linkageType:     InternalLinkage
      functionLinenumber: 33
      functionLinenumberEnd: 97
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          227
      EdgeCount:       44
      CyclomaticComplexity: 14
      functionsReached:
        - WLog_Print_dbg_tag
        - _wcslen
        - _wcsncat
        - calloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:34,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:48,33'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:49,31'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:66,30'
          Dst:             calloc
        - 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:73,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:
        - ''
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          222
      EdgeCount:       44
      CyclomaticComplexity: 14
      functionsReached:
        - WLog_Print_dbg_tag
        - calloc
        - snprintf
        - strlen
      functionUses:    0
      BranchProfiles:  []
      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,10'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:149,21'
          Dst:             calloc
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:155,10'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:157,10'
          Dst:             snprintf
    - functionName:    UnixPathAllocCombineW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/include/PathAllocCombine.h'
      linkageType:     InternalLinkage
      functionLinenumber: 33
      functionLinenumberEnd: 97
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          227
      EdgeCount:       44
      CyclomaticComplexity: 14
      functionsReached:
        - WLog_Print_dbg_tag
        - _wcslen
        - _wcsncat
        - calloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:34,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:48,33'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:49,31'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:66,30'
          Dst:             calloc
        - 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:73,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:
        - ''
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          222
      EdgeCount:       44
      CyclomaticComplexity: 14
      functionsReached:
        - WLog_Print_dbg_tag
        - calloc
        - snprintf
        - strlen
      functionUses:    0
      BranchProfiles:  []
      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,10'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:149,21'
          Dst:             calloc
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:155,10'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:157,10'
          Dst:             snprintf
    - functionName:    PathAllocCombineW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/include/PathAllocCombine.h'
      linkageType:     InternalLinkage
      functionLinenumber: 33
      functionLinenumberEnd: 97
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          227
      EdgeCount:       44
      CyclomaticComplexity: 14
      functionsReached:
        - WLog_Print_dbg_tag
        - _wcslen
        - _wcsncat
        - calloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:34,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:48,33'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:49,31'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:66,30'
          Dst:             calloc
        - 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:73,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:
        - ''
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          222
      EdgeCount:       44
      CyclomaticComplexity: 14
      functionsReached:
        - WLog_Print_dbg_tag
        - calloc
        - snprintf
        - strlen
      functionUses:    0
      BranchProfiles:  []
      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,10'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:149,21'
          Dst:             calloc
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:155,10'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:157,10'
          Dst:             snprintf
    - functionName:    PathCchCombineExW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 642
      functionLinenumberEnd: 644
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:643,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    PathCchCombineExA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 634
      functionLinenumberEnd: 636
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:635,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    PathCchCombineW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 622
      functionLinenumberEnd: 624
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          20
      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:    PathCchCombineA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 615
      functionLinenumberEnd: 617
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:616,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    PathAllocCanonicalizeW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 587
      functionLinenumberEnd: 603
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          76
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - ConvertUtf8ToWCharAlloc
        - ConvertWCharToUtf8Alloc
        - PathAllocCanonicalizeA
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:592,14'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/path/path.c:597,15'
          Dst:             PathAllocCanonicalizeA
        - Src:             'winpr/libwinpr/path/path.c:599,18'
          Dst:             ConvertUtf8ToWCharAlloc
    - functionName:    PathAllocCanonicalizeA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 573
      functionLinenumberEnd: 584
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          67
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_PathCanonicalize
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:579,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/path/path.c:580,17'
          Dst:             winpr_PathCanonicalize
    - functionName:    winpr_PathCanonicalize
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 466
      functionLinenumberEnd: 499
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         27
      ICount:          131
      EdgeCount:       33
      CyclomaticComplexity: 8
      functionsReached:
        - replace
        - replace_dotdot
        - replace_trailing_dotdot
        - strlen
        - strndup
        - strnlen
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:467,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/path/path.c:469,21'
          Dst:             strlen
        - Src:             'winpr/libwinpr/path/path.c:477,14'
          Dst:             strndup
        - Src:             'winpr/libwinpr/path/path.c:480,2'
          Dst:             replace
        - Src:             'winpr/libwinpr/path/path.c:481,2'
          Dst:             replace
        - Src:             'winpr/libwinpr/path/path.c:482,7'
          Dst:             replace_dotdot
        - Src:             'winpr/libwinpr/path/path.c:482,36'
          Dst:             replace_trailing_dotdot
        - Src:             'winpr/libwinpr/path/path.c:489,17'
          Dst:             strnlen
    - functionName:    replace
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 396
      functionLinenumberEnd: 407
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          53
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - strlen
        - strnlen
        - strstr
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:397,21'
          Dst:             strlen
        - Src:             'winpr/libwinpr/path/path.c:400,15'
          Dst:             strstr
        - Src:             'winpr/libwinpr/path/path.c:406,22'
          Dst:             strnlen
    - functionName:    replace_dotdot
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 413
      functionLinenumberEnd: 437
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          92
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - strnlen
        - strstr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:418,15'
          Dst:             strstr
        - Src:             'winpr/libwinpr/path/path.c:434,22'
          Dst:             strnlen
    - functionName:    replace_trailing_dotdot
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 441
      functionLinenumberEnd: 460
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          80
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - strcmp
        - strnlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:442,21'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/path/path.c:446,6'
          Dst:             strcmp
    - functionName:    PathCchCanonicalizeExW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 562
      functionLinenumberEnd: 565
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - PathCchCanonicalizeW
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:564,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/path/path.c:565,9'
          Dst:             PathCchCanonicalizeW
    - functionName:    PathCchCanonicalizeW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 523
      functionLinenumberEnd: 542
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          74
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - ConvertUtf8NToWChar
        - ConvertWCharToUtf8Alloc
        - PathCchCanonicalizeA
        - calloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:526,14'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/path/path.c:530,14'
          Dst:             calloc
        - Src:             'winpr/libwinpr/path/path.c:537,15'
          Dst:             PathCchCanonicalizeA
        - Src:             'winpr/libwinpr/path/path.c:539,8'
          Dst:             ConvertUtf8NToWChar
    - functionName:    PathCchCanonicalizeA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 507
      functionLinenumberEnd: 520
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          59
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - strncpy
        - strnlen
        - winpr_PathCanonicalize
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:508,14'
          Dst:             winpr_PathCanonicalize
        - Src:             'winpr/libwinpr/path/path.c:511,21'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/path/path.c:517,2'
          Dst:             strncpy
    - functionName:    PathCchCanonicalizeExA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 552
      functionLinenumberEnd: 555
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - PathCchCanonicalizeA
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:554,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/path/path.c:555,9'
          Dst:             PathCchCanonicalizeA
    - functionName:    PathCchAppendExW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 385
      functionLinenumberEnd: 387
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:386,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    PathCchAppendExA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 378
      functionLinenumberEnd: 380
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:379,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    NativePathCchAppendW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/include/PathCchAppend.h'
      linkageType:     InternalLinkage
      functionLinenumber: 18
      functionLinenumberEnd: 74
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         47
      ICount:          272
      EdgeCount:       64
      CyclomaticComplexity: 19
      functionsReached:
        - HRESULT_FROM_WIN32
        - _wcsncat
        - _wcsnlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:28,31'
          Dst:             _wcsnlen
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:29,31'
          Dst:             _wcsnlen
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:46,4'
          Dst:             _wcsncat
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:56,4'
          Dst:             _wcsncat
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:67,13'
          Dst:             _wcsnlen
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:66,4'
          Dst:             _wcsncat
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:68,4'
          Dst:             _wcsncat
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:73,9'
          Dst:             HRESULT_FROM_WIN32
    - functionName:    UnixPathCchAppendW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/include/PathCchAppend.h'
      linkageType:     InternalLinkage
      functionLinenumber: 18
      functionLinenumberEnd: 74
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         47
      ICount:          272
      EdgeCount:       64
      CyclomaticComplexity: 19
      functionsReached:
        - HRESULT_FROM_WIN32
        - _wcsncat
        - _wcsnlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:28,31'
          Dst:             _wcsnlen
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:29,31'
          Dst:             _wcsnlen
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:46,4'
          Dst:             _wcsncat
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:56,4'
          Dst:             _wcsncat
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:67,13'
          Dst:             _wcsnlen
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:66,4'
          Dst:             _wcsncat
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:68,4'
          Dst:             _wcsncat
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:73,9'
          Dst:             HRESULT_FROM_WIN32
    - functionName:    UnixPathCchAppendA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/include/PathCchAppend.h'
      linkageType:     InternalLinkage
      functionLinenumber: 79
      functionLinenumberEnd: 127
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         48
      ICount:          263
      EdgeCount:       65
      CyclomaticComplexity: 19
      functionsReached:
        - HRESULT_FROM_WIN32
        - snprintf
        - strnlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:92,31'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:96,31'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:104,4'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:112,4'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:120,4'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:126,9'
          Dst:             HRESULT_FROM_WIN32
    - functionName:    PathCchAppendW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/include/PathCchAppend.h'
      linkageType:     InternalLinkage
      functionLinenumber: 18
      functionLinenumberEnd: 74
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         47
      ICount:          272
      EdgeCount:       64
      CyclomaticComplexity: 19
      functionsReached:
        - HRESULT_FROM_WIN32
        - _wcsncat
        - _wcsnlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:28,31'
          Dst:             _wcsnlen
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:29,31'
          Dst:             _wcsnlen
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:46,4'
          Dst:             _wcsncat
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:56,4'
          Dst:             _wcsncat
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:67,13'
          Dst:             _wcsnlen
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:66,4'
          Dst:             _wcsncat
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:68,4'
          Dst:             _wcsncat
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:73,9'
          Dst:             HRESULT_FROM_WIN32
    - functionName:    PathCchAppendA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/include/PathCchAppend.h'
      linkageType:     InternalLinkage
      functionLinenumber: 79
      functionLinenumberEnd: 127
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         48
      ICount:          263
      EdgeCount:       65
      CyclomaticComplexity: 19
      functionsReached:
        - HRESULT_FROM_WIN32
        - snprintf
        - strnlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:92,31'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:96,31'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:104,4'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:112,4'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:120,4'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:126,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:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          140
      EdgeCount:       27
      CyclomaticComplexity: 9
      functionsReached:
        - HRESULT_FROM_WIN32
        - _wcslen
        - _wcsncat
        - _wcsrchr
      functionUses:    0
      BranchProfiles:  []
      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:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          138
      EdgeCount:       27
      CyclomaticComplexity: 9
      functionsReached:
        - HRESULT_FROM_WIN32
        - snprintf
        - strlen
        - strrchr
      functionUses:    0
      BranchProfiles:  []
      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:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          140
      EdgeCount:       27
      CyclomaticComplexity: 9
      functionsReached:
        - HRESULT_FROM_WIN32
        - _wcslen
        - _wcsncat
        - _wcsrchr
      functionUses:    0
      BranchProfiles:  []
      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:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          138
      EdgeCount:       27
      CyclomaticComplexity: 9
      functionsReached:
        - HRESULT_FROM_WIN32
        - snprintf
        - strlen
        - strrchr
      functionUses:    0
      BranchProfiles:  []
      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:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          140
      EdgeCount:       27
      CyclomaticComplexity: 9
      functionsReached:
        - HRESULT_FROM_WIN32
        - _wcslen
        - _wcsncat
        - _wcsrchr
      functionUses:    0
      BranchProfiles:  []
      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:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          138
      EdgeCount:       27
      CyclomaticComplexity: 9
      functionsReached:
        - HRESULT_FROM_WIN32
        - snprintf
        - strlen
        - strrchr
      functionUses:    0
      BranchProfiles:  []
      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: 235
      functionLinenumberEnd: 237
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:236,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    PathCchRemoveBackslashExA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 227
      functionLinenumberEnd: 229
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:228,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    PathCchAddSeparatorExW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/include/PathCchAddSeparatorEx.h'
      linkageType:     InternalLinkage
      functionLinenumber: 14
      functionLinenumberEnd: 35
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          107
      EdgeCount:       26
      CyclomaticComplexity: 7
      functionsReached:
        - HRESULT_FROM_WIN32
        - _wcsnlen
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:15,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:19,31'
          Dst:             _wcsnlen
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:34,9'
          Dst:             HRESULT_FROM_WIN32
    - functionName:    PathCchAddSeparatorExA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/include/PathCchAddSeparatorEx.h'
      linkageType:     InternalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 63
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          107
      EdgeCount:       26
      CyclomaticComplexity: 7
      functionsReached:
        - HRESULT_FROM_WIN32
        - strnlen
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:43,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:47,31'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:62,9'
          Dst:             HRESULT_FROM_WIN32
    - functionName:    PathCchAddSlashExW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/include/PathCchAddSeparatorEx.h'
      linkageType:     InternalLinkage
      functionLinenumber: 14
      functionLinenumberEnd: 35
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          107
      EdgeCount:       26
      CyclomaticComplexity: 7
      functionsReached:
        - HRESULT_FROM_WIN32
        - _wcsnlen
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:15,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:19,31'
          Dst:             _wcsnlen
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:34,9'
          Dst:             HRESULT_FROM_WIN32
    - functionName:    PathCchAddSlashExA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/include/PathCchAddSeparatorEx.h'
      linkageType:     InternalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 63
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          107
      EdgeCount:       26
      CyclomaticComplexity: 7
      functionsReached:
        - HRESULT_FROM_WIN32
        - strnlen
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:43,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:47,31'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:62,9'
          Dst:             HRESULT_FROM_WIN32
    - functionName:    PathCchAddBackslashExW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/include/PathCchAddSeparatorEx.h'
      linkageType:     InternalLinkage
      functionLinenumber: 14
      functionLinenumberEnd: 35
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          107
      EdgeCount:       26
      CyclomaticComplexity: 7
      functionsReached:
        - HRESULT_FROM_WIN32
        - _wcsnlen
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:15,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:19,31'
          Dst:             _wcsnlen
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:34,9'
          Dst:             HRESULT_FROM_WIN32
    - functionName:    PathCchAddBackslashExA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/include/PathCchAddSeparatorEx.h'
      linkageType:     InternalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 63
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          107
      EdgeCount:       26
      CyclomaticComplexity: 7
      functionsReached:
        - HRESULT_FROM_WIN32
        - strnlen
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:43,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:47,31'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:62,9'
          Dst:             HRESULT_FROM_WIN32
    - functionName:    PathCchRemoveBackslashW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 161
      functionLinenumberEnd: 163
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:162,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    PathCchRemoveBackslashA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 155
      functionLinenumberEnd: 157
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:156,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    PathCchAddSeparatorW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/include/PathCchAddSeparator.h'
      linkageType:     InternalLinkage
      functionLinenumber: 11
      functionLinenumberEnd: 32
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          103
      EdgeCount:       26
      CyclomaticComplexity: 7
      functionsReached:
        - HRESULT_FROM_WIN32
        - _wcsnlen
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparator.h:12,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparator.h:16,31'
          Dst:             _wcsnlen
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparator.h:31,9'
          Dst:             HRESULT_FROM_WIN32
    - functionName:    PathCchAddSeparatorA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/include/PathCchAddSeparator.h'
      linkageType:     InternalLinkage
      functionLinenumber: 37
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          103
      EdgeCount:       26
      CyclomaticComplexity: 7
      functionsReached:
        - HRESULT_FROM_WIN32
        - strnlen
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparator.h:38,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparator.h:42,31'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparator.h:57,9'
          Dst:             HRESULT_FROM_WIN32
    - functionName:    PathCchAddSlashW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/include/PathCchAddSeparator.h'
      linkageType:     InternalLinkage
      functionLinenumber: 11
      functionLinenumberEnd: 32
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          103
      EdgeCount:       26
      CyclomaticComplexity: 7
      functionsReached:
        - HRESULT_FROM_WIN32
        - _wcsnlen
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparator.h:12,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparator.h:16,31'
          Dst:             _wcsnlen
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparator.h:31,9'
          Dst:             HRESULT_FROM_WIN32
    - functionName:    PathCchAddSlashA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/include/PathCchAddSeparator.h'
      linkageType:     InternalLinkage
      functionLinenumber: 37
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          103
      EdgeCount:       26
      CyclomaticComplexity: 7
      functionsReached:
        - HRESULT_FROM_WIN32
        - strnlen
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparator.h:38,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparator.h:42,31'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparator.h:57,9'
          Dst:             HRESULT_FROM_WIN32
    - functionName:    PathCchAddBackslashW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/include/PathCchAddSeparator.h'
      linkageType:     InternalLinkage
      functionLinenumber: 11
      functionLinenumberEnd: 32
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          103
      EdgeCount:       26
      CyclomaticComplexity: 7
      functionsReached:
        - HRESULT_FROM_WIN32
        - _wcsnlen
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparator.h:12,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparator.h:16,31'
          Dst:             _wcsnlen
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparator.h:31,9'
          Dst:             HRESULT_FROM_WIN32
    - functionName:    PathCchAddBackslashA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/include/PathCchAddSeparator.h'
      linkageType:     InternalLinkage
      functionLinenumber: 37
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          103
      EdgeCount:       26
      CyclomaticComplexity: 7
      functionsReached:
        - HRESULT_FROM_WIN32
        - strnlen
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparator.h:38,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparator.h:42,31'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparator.h:57,9'
          Dst:             HRESULT_FROM_WIN32
    - functionName:    winpr_PathMakePath
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 889
      functionLinenumberEnd: 906
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - PathMakePathA
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:893,9'
          Dst:             PathMakePathA
    - functionName:    PathMakePathA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 556
      functionLinenumberEnd: 606
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          127
      EdgeCount:       34
      CyclomaticComplexity: 10
      functionsReached:
        - PathGetSeparatorA
        - __errno_location
        - _strdup
        - mkdir
        - strchr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:562,21'
          Dst:             PathGetSeparatorA
        - Src:             'winpr/libwinpr/path/shell.c:578,14'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/path/shell.c:589,12'
          Dst:             strchr
        - Src:             'winpr/libwinpr/path/shell.c:592,7'
          Dst:             mkdir
        - Src:             'winpr/libwinpr/path/shell.c:593,8'
          Dst:             __errno_location
    - functionName:    winpr_RemoveDirectory
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 840
      functionLinenumberEnd: 849
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - SetLastError
        - __errno_location
        - map_posix_err
        - rmdir
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:842,12'
          Dst:             rmdir
        - Src:             'winpr/libwinpr/path/shell.c:845,30'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/path/shell.c:845,16'
          Dst:             map_posix_err
        - Src:             'winpr/libwinpr/path/shell.c:845,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/path/shell.c:847,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: 814
      functionLinenumberEnd: 837
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - unlink
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:819,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: 760
      functionLinenumberEnd: 811
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          95
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - SetLastError
        - __errno_location
        - map_posix_err
        - rename
        - stat64
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:764,8'
          Dst:             stat64
        - Src:             'winpr/libwinpr/path/shell.c:770,4'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/path/shell.c:778,4'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/path/shell.c:783,8'
          Dst:             rename
        - Src:             'winpr/libwinpr/path/shell.c:786,30'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/path/shell.c:786,16'
          Dst:             map_posix_err
        - Src:             'winpr/libwinpr/path/shell.c:786,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: 755
      functionLinenumberEnd: 756
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_MoveFileEx
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:756,9'
          Dst:             winpr_MoveFileEx
    - functionName:    PathIsDirectoryEmptyW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 738
      functionLinenumberEnd: 749
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          44
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - ConvertWCharToUtf8Alloc
        - PathIsDirectoryEmptyA
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:743,16'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/path/shell.c:746,8'
          Dst:             PathIsDirectoryEmptyA
    - functionName:    PathIsDirectoryEmptyA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 715
      functionLinenumberEnd: 735
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          74
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - closedir
        - opendir
        - readdir64
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:718,13'
          Dst:             opendir
        - Src:             'winpr/libwinpr/path/shell.c:724,15'
          Dst:             readdir64
        - Src:             'winpr/libwinpr/path/shell.c:726,7'
          Dst:             strcmp
        - Src:             'winpr/libwinpr/path/shell.c:726,39'
          Dst:             strcmp
        - Src:             'winpr/libwinpr/path/shell.c:733,2'
          Dst:             closedir
    - functionName:    winpr_PathFileExists
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 869
      functionLinenumberEnd: 886
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          30
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - PathFileExistsA
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:873,9'
          Dst:             PathFileExistsA
    - functionName:    PathFileExistsA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 691
      functionLinenumberEnd: 694
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - stat64
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:694,10'
          Dst:             stat64
    - functionName:    PathFileExistsW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 698
      functionLinenumberEnd: 711
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          44
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - ConvertWCharToUtf8Alloc
        - winpr_PathFileExists
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:704,16'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/path/shell.c:708,8'
          Dst:             winpr_PathFileExists
    - functionName:    PathIsRelativeW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 674
      functionLinenumberEnd: 687
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          44
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - ConvertWCharToUtf8Alloc
        - PathIsRelativeA
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:681,16'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/path/shell.c:684,8'
          Dst:             PathIsRelativeA
    - functionName:    PathIsRelativeA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 666
      functionLinenumberEnd: 671
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    PathMakePathW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 609
      functionLinenumberEnd: 661
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          131
      EdgeCount:       34
      CyclomaticComplexity: 10
      functionsReached:
        - ConvertWCharToUtf8Alloc
        - PathGetSeparatorA
        - PathGetSeparatorW
        - __errno_location
        - mkdir
        - strchr
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:615,23'
          Dst:             PathGetSeparatorW
        - Src:             'winpr/libwinpr/path/shell.c:616,21'
          Dst:             PathGetSeparatorA
        - Src:             'winpr/libwinpr/path/shell.c:632,8'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/path/shell.c:644,12'
          Dst:             strchr
        - Src:             'winpr/libwinpr/path/shell.c:647,7'
          Dst:             mkdir
        - Src:             'winpr/libwinpr/path/shell.c:648,8'
          Dst:             __errno_location
    - functionName:    GetCombinedPathV
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 487
      functionLinenumberEnd: 493
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - GetCombinedPathVA
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:491,14'
          Dst:             GetCombinedPathVA
    - functionName:    GetCombinedPathVA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 497
      functionLinenumberEnd: 553
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         34
      ICount:          197
      EdgeCount:       46
      CyclomaticComplexity: 14
      functionsReached:
        - NativePathCchAppendA
        - PathCchConvertStyleA
        - calloc
        - strlen
        - winpr_vasprintf
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:504,20'
          Dst:             strlen
        - Src:             'winpr/libwinpr/path/shell.c:509,18'
          Dst:             winpr_vasprintf
        - Src:             'winpr/libwinpr/path/shell.c:522,22'
          Dst:             calloc
        - Src:             'winpr/libwinpr/path/shell.c:530,6'
          Dst:             PathCchConvertStyleA
        - Src:             'winpr/libwinpr/path/shell.c:539,6'
          Dst:             PathCchConvertStyleA
        - Src:             'winpr/libwinpr/path/shell.c:542,11'
          Dst:             NativePathCchAppendA
    - functionName:    GetCombinedPath
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 480
      functionLinenumberEnd: 484
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - GetCombinedPathV
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:482,10'
          Dst:             GetCombinedPathV
        - Src:             'winpr/libwinpr/path/shell.c:483,9'
          Dst:             GetCombinedPathV
    - functionName:    GetEnvironmentSubPathVA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 468
      functionLinenumberEnd: 477
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - GetCombinedPathVA
        - GetEnvironmentPath
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:469,14'
          Dst:             GetEnvironmentPath
        - Src:             'winpr/libwinpr/path/shell.c:474,18'
          Dst:             GetCombinedPathVA
    - functionName:    GetEnvironmentPath
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 426
      functionLinenumberEnd: 449
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          69
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - GetEnvironmentVariableX
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:430,10'
          Dst:             GetEnvironmentVariableX
        - Src:             'winpr/libwinpr/path/shell.c:439,13'
          Dst:             GetEnvironmentVariableX
    - functionName:    GetEnvironmentSubPathV
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 459
      functionLinenumberEnd: 464
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - GetEnvironmentSubPathVA
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:462,14'
          Dst:             GetEnvironmentSubPathVA
    - functionName:    GetEnvironmentSubPath
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 452
      functionLinenumberEnd: 456
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - GetEnvironmentSubPathV
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:454,10'
          Dst:             GetEnvironmentSubPathV
        - Src:             'winpr/libwinpr/path/shell.c:455,9'
          Dst:             GetEnvironmentSubPathV
    - functionName:    GetKnownSubPathVA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 415
      functionLinenumberEnd: 423
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - GetCombinedPathVA
        - GetKnownPath
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:416,20'
          Dst:             GetKnownPath
        - Src:             'winpr/libwinpr/path/shell.c:420,18'
          Dst:             GetCombinedPathVA
    - functionName:    GetKnownPath
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 353
      functionLinenumberEnd: 394
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      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:356,2'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:359,11'
          Dst:             GetPath_HOME
        - Src:             'winpr/libwinpr/path/shell.c:363,11'
          Dst:             GetPath_TEMP
        - Src:             'winpr/libwinpr/path/shell.c:367,11'
          Dst:             GetPath_XDG_DATA_HOME
        - Src:             'winpr/libwinpr/path/shell.c:371,11'
          Dst:             GetPath_XDG_CONFIG_HOME
        - Src:             'winpr/libwinpr/path/shell.c:375,11'
          Dst:             GetPath_XDG_CACHE_HOME
        - Src:             'winpr/libwinpr/path/shell.c:379,11'
          Dst:             GetPath_XDG_RUNTIME_DIR
        - Src:             'winpr/libwinpr/path/shell.c:383,11'
          Dst:             GetPath_SYSTEM_CONFIG_HOME
        - Src:             'winpr/libwinpr/path/shell.c:392,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/path/shell.c:392,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/path/shell.c:392,3'
          Dst:             GetKnownPathIdString
        - Src:             'winpr/libwinpr/path/shell.c:392,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    GetPath_HOME
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 115
      functionLinenumberEnd: 124
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - GetEnvAlloc
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:122,9'
          Dst:             GetEnvAlloc
    - functionName:    GetPath_TEMP
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 128
      functionLinenumberEnd: 141
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          29
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - GetEnvAlloc
        - _strdup
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:135,9'
          Dst:             GetEnvAlloc
        - Src:             'winpr/libwinpr/path/shell.c:138,10'
          Dst:             _strdup
    - functionName:    GetPath_XDG_DATA_HOME
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 145
      functionLinenumberEnd: 183
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         10
      ICount:          70
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - GetEnvAlloc
        - GetPath_HOME
        - snprintf
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:160,9'
          Dst:             GetEnvAlloc
        - Src:             'winpr/libwinpr/path/shell.c:165,9'
          Dst:             GetPath_HOME
        - Src:             'winpr/libwinpr/path/shell.c:170,9'
          Dst:             strlen
        - Src:             'winpr/libwinpr/path/shell.c:179,8'
          Dst:             snprintf
    - functionName:    GetPath_XDG_CONFIG_HOME
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 186
      functionLinenumberEnd: 231
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         13
      ICount:          83
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - GetEnvAlloc
        - GetPath_HOME
        - GetPath_TEMP
        - snprintf
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:205,9'
          Dst:             GetEnvAlloc
        - Src:             'winpr/libwinpr/path/shell.c:210,9'
          Dst:             GetPath_HOME
        - Src:             'winpr/libwinpr/path/shell.c:213,10'
          Dst:             GetPath_TEMP
        - Src:             'winpr/libwinpr/path/shell.c:218,9'
          Dst:             strlen
        - Src:             'winpr/libwinpr/path/shell.c:227,8'
          Dst:             snprintf
    - functionName:    GetPath_XDG_CACHE_HOME
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 249
      functionLinenumberEnd: 301
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         10
      ICount:          69
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - GetEnvAlloc
        - GetPath_HOME
        - snprintf
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:278,9'
          Dst:             GetEnvAlloc
        - Src:             'winpr/libwinpr/path/shell.c:283,15'
          Dst:             GetPath_HOME
        - Src:             'winpr/libwinpr/path/shell.c:288,9'
          Dst:             strlen
        - Src:             'winpr/libwinpr/path/shell.c:297,8'
          Dst:             snprintf
    - functionName:    GetPath_XDG_RUNTIME_DIR
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 304
      functionLinenumberEnd: 350
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - GetEnvAlloc
        - GetPath_TEMP
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:342,9'
          Dst:             GetEnvAlloc
        - Src:             'winpr/libwinpr/path/shell.c:348,9'
          Dst:             GetPath_TEMP
    - functionName:    GetPath_SYSTEM_CONFIG_HOME
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 234
      functionLinenumberEnd: 245
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - _strdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:243,9'
          Dst:             _strdup
    - functionName:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 323
      functionLinenumberEnd: 335
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          65
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintTextMessageVA
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:326,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:328,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:332,4'
          Dst:             WLog_PrintTextMessageVA
    - functionName:    GetEnvAlloc
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 88
      functionLinenumberEnd: 112
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          69
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - GetEnvironmentVariableX
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:93,10'
          Dst:             GetEnvironmentVariableX
        - Src:             'winpr/libwinpr/path/shell.c:102,13'
          Dst:             GetEnvironmentVariableX
    - functionName:    GetKnownSubPathV
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 405
      functionLinenumberEnd: 411
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - GetKnownSubPathVA
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:409,14'
          Dst:             GetKnownSubPathVA
    - functionName:    GetKnownSubPath
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 398
      functionLinenumberEnd: 402
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - GetKnownSubPathV
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:400,10'
          Dst:             GetKnownSubPathV
        - Src:             'winpr/libwinpr/path/shell.c:401,9'
          Dst:             GetKnownSubPathV
    - functionName:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 323
      functionLinenumberEnd: 335
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          65
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintTextMessageVA
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:326,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:328,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:332,4'
          Dst:             WLog_PrintTextMessageVA
    - functionName:    winpr_atexit
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/atexit.c'
      linkageType:     InternalLinkage
      functionLinenumber: 33
      functionLinenumberEnd: 44
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          46
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_Print_dbg_tag
        - __errno_location
        - atexit
        - winpr_strerror
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/atexit.c:35,17'
          Dst:             atexit
        - Src:             'winpr/libwinpr/utils/atexit.c:39,3'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/utils/atexit.c:39,3'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/utils/atexit.c:39,3'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/utils/atexit.c:39,3'
          Dst:             WLog_Print_dbg_tag
    - 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:    Stream_Fill
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1233
      functionLinenumberEnd: 1238
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          57
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - Stream_Seek
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1234,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1235,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:1235,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1237,3'
          Dst:             Stream_Seek
    - functionName:    Stream_GetRemainingCapacity
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 251
      functionLinenumberEnd: 264
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         24
      ICount:          96
      EdgeCount:       25
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_int_assert
        - winpr_log_backtrace
      functionUses:    47
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:253,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/stream.c:254,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/stream.c:256,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/stream.c:259,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/utils/stream.c:260,3'
          Dst:             winpr_log_backtrace
    - functionName:    Stream_Seek
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 157
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          51
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - winpr_int_assert
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:158,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:159,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:159,3'
          Dst:             winpr_int_assert
    - functionName:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 323
      functionLinenumberEnd: 335
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          65
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintTextMessageVA
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:326,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:328,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:332,4'
          Dst:             WLog_PrintTextMessageVA
    - 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:
        - ''
      BBCount:         13
      ICount:          68
      EdgeCount:       14
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      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:
        - ''
        - ''
      BBCount:         9
      ICount:          48
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/endian.h:236,3'
          Dst:             winpr_int_assert
    - functionName:    Stream_SafeZeroEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 525
      functionLinenumberEnd: 532
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredCapacityEx
        - Stream_Zero
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:526,7'
          Dst:             Stream_CheckAndLogRequiredCapacityEx
        - Src:             'winpr/libwinpr/utils/stream.c:530,2'
          Dst:             Stream_Zero
    - functionName:    Stream_CheckAndLogRequiredCapacityEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 315
      functionLinenumberEnd: 330
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - size_t
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          76
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredCapacityExVa
        - Stream_GetRemainingCapacity
        - winpr_int_assert
      functionUses:    13
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:316,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/stream.c:317,24'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/libwinpr/utils/stream.c:325,7'
          Dst:             Stream_CheckAndLogRequiredCapacityExVa
    - functionName:    Stream_Zero
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1241
      functionLinenumberEnd: 1243
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_Fill
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1242,3'
          Dst:             Stream_Fill
    - functionName:    Stream_CheckAndLogRequiredCapacityExVa
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 334
      functionLinenumberEnd: 342
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - size_t
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          70
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredCapacityWLogExVa
        - Stream_GetRemainingCapacity
        - WLog_Get
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:335,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/stream.c:336,24'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/libwinpr/utils/stream.c:339,53'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/utils/stream.c:339,10'
          Dst:             Stream_CheckAndLogRequiredCapacityWLogExVa
    - functionName:    Stream_CheckAndLogRequiredCapacityWLogExVa
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 348
      functionLinenumberEnd: 367
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - size_t
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          95
      EdgeCount:       21
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_GetRemainingCapacity
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - vsnprintf
        - winpr_int_assert
        - winpr_log_backtrace_ex
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:350,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/stream.c:351,24'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/libwinpr/utils/stream.c:357,9'
          Dst:             vsnprintf
        - Src:             'winpr/libwinpr/utils/stream.c:359,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/utils/stream.c:359,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'winpr/libwinpr/utils/stream.c:363,3'
          Dst:             winpr_log_backtrace_ex
    - functionName:    Stream_SafeSeekEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 515
      functionLinenumberEnd: 522
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_Seek
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:516,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'winpr/libwinpr/utils/stream.c:520,2'
          Dst:             Stream_Seek
    - functionName:    Stream_CheckAndLogRequiredLengthEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 393
      functionLinenumberEnd: 407
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - size_t
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          76
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredLengthExVa
        - Stream_GetRemainingLength
        - winpr_int_assert
      functionUses:    23
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:394,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/stream.c:395,24'
          Dst:             Stream_GetRemainingLength
        - Src:             'winpr/libwinpr/utils/stream.c:402,19'
          Dst:             Stream_CheckAndLogRequiredLengthExVa
    - functionName:    Stream_GetRemainingLength
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 267
      functionLinenumberEnd: 281
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         30
      ICount:          114
      EdgeCount:       31
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_int_assert
        - winpr_log_backtrace
      functionUses:    25
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:269,2'
          Dst:             winpr_int_assert
        - 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:273,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/stream.c:276,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/utils/stream.c:277,3'
          Dst:             winpr_log_backtrace
    - functionName:    Stream_CheckAndLogRequiredLengthExVa
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 411
      functionLinenumberEnd: 419
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - size_t
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          70
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogExVa
        - Stream_GetRemainingLength
        - WLog_Get
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:412,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/stream.c:413,24'
          Dst:             Stream_GetRemainingLength
        - Src:             'winpr/libwinpr/utils/stream.c:416,51'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/utils/stream.c:416,10'
          Dst:             Stream_CheckAndLogRequiredLengthWLogExVa
    - functionName:    Stream_CheckAndLogRequiredLengthWLogExVa
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 444
      functionLinenumberEnd: 462
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - size_t
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          95
      EdgeCount:       21
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_GetRemainingLength
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - vsnprintf
        - winpr_int_assert
        - winpr_log_backtrace_ex
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:445,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/stream.c:446,24'
          Dst:             Stream_GetRemainingLength
        - Src:             'winpr/libwinpr/utils/stream.c:452,9'
          Dst:             vsnprintf
        - Src:             'winpr/libwinpr/utils/stream.c:454,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/utils/stream.c:454,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'winpr/libwinpr/utils/stream.c:458,3'
          Dst:             winpr_log_backtrace_ex
    - functionName:    Stream_Read_UTF16_String_As_UTF8_Buffer
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 502
      functionLinenumberEnd: 512
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          60
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - ConvertWCharNToUtf8
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_ConstPointer
        - Stream_Seek
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:503,21'
          Dst:             Stream_ConstPointer
        - Src:             'winpr/libwinpr/utils/stream.c:507,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'winpr/libwinpr/utils/stream.c:510,2'
          Dst:             Stream_Seek
        - Src:             'winpr/libwinpr/utils/stream.c:511,9'
          Dst:             ConvertWCharNToUtf8
    - functionName:    Stream_ConstPointer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1318
      functionLinenumberEnd: 1320
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          31
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1319,3'
          Dst:             winpr_int_assert
    - functionName:    Stream_Read_UTF16_String_As_UTF8
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 488
      functionLinenumberEnd: 498
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          57
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - ConvertWCharNToUtf8Alloc
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_ConstPointer
        - Stream_Seek
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:489,21'
          Dst:             Stream_ConstPointer
        - Src:             'winpr/libwinpr/utils/stream.c:493,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'winpr/libwinpr/utils/stream.c:496,2'
          Dst:             Stream_Seek
        - Src:             'winpr/libwinpr/utils/stream.c:497,9'
          Dst:             ConvertWCharNToUtf8Alloc
    - functionName:    Stream_Pointer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1312
      functionLinenumberEnd: 1314
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          31
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1313,3'
          Dst:             winpr_int_assert
    - functionName:    Stream_Write_UTF16_String_From_UTF8
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 466
      functionLinenumberEnd: 485
      functionDepth:   0
      returnType:      size_t
      argCount:        5
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          92
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - ConvertUtf8NToWChar
        - Stream_CheckAndLogRequiredCapacityEx
        - Stream_Pointer
        - Stream_Seek
        - Stream_Zero
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:468,15'
          Dst:             Stream_Pointer
        - Src:             'winpr/libwinpr/utils/stream.c:472,8'
          Dst:             Stream_CheckAndLogRequiredCapacityEx
        - Src:             'winpr/libwinpr/utils/stream.c:475,8'
          Dst:             ConvertUtf8NToWChar
        - Src:             'winpr/libwinpr/utils/stream.c:479,3'
          Dst:             Stream_Seek
        - Src:             'winpr/libwinpr/utils/stream.c:483,3'
          Dst:             Stream_Zero
    - functionName:    Stream_CheckAndLogRequiredLengthWLogEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 423
      functionLinenumberEnd: 438
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - size_t
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          76
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogExVa
        - Stream_GetRemainingLength
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:424,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/stream.c:425,24'
          Dst:             Stream_GetRemainingLength
        - Src:             'winpr/libwinpr/utils/stream.c:433,7'
          Dst:             Stream_CheckAndLogRequiredLengthWLogExVa
    - functionName:    Stream_CheckAndLogRequiredCapacityWLogEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 372
      functionLinenumberEnd: 388
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - size_t
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          76
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredCapacityWLogExVa
        - Stream_GetRemainingCapacity
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:374,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/stream.c:375,24'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/libwinpr/utils/stream.c:383,7'
          Dst:             Stream_CheckAndLogRequiredCapacityWLogExVa
    - functionName:    stream_read_u16_le
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 196
      functionLinenumberEnd: 204
      functionDepth:   0
      returnType:      short
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          64
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_GetRemainingLength
        - Stream_Seek
        - winpr_Data_Get_UINT16
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:198,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:199,3'
          Dst:             Stream_GetRemainingLength
        - Src:             'winpr/include/winpr/stream.h:199,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:201,20'
          Dst:             winpr_Data_Get_UINT16
        - Src:             'winpr/include/winpr/stream.h:203,4'
          Dst:             Stream_Seek
    - functionName:    Stream_Read_UTF16_String
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 300
      functionLinenumberEnd: 311
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          83
      EdgeCount:       26
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - stream_read_u16_le
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:301,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/stream.c:302,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/stream.c:304,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'winpr/libwinpr/utils/stream.c:308,3'
          Dst:             stream_read_u16_le
    - functionName:    Stream_Write_UINT16_unchecked
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 925
      functionLinenumberEnd: 932
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          68
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - winpr_Data_Write_UINT16
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:926,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:927,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:928,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:928,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:930,3'
          Dst:             winpr_Data_Write_UINT16
    - functionName:    Stream_Write_UTF16_String
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 284
      functionLinenumberEnd: 297
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         44
      ICount:          145
      EdgeCount:       49
      CyclomaticComplexity: 7
      functionsReached:
        - Stream_CheckAndLogRequiredCapacityEx
        - Stream_Write_UINT16_unchecked
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:285,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/stream.c:286,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/stream.c:290,7'
          Dst:             Stream_CheckAndLogRequiredCapacityEx
        - Src:             'winpr/libwinpr/utils/stream.c:294,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/stream.c:294,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/stream.c:294,3'
          Dst:             Stream_Write_UINT16_unchecked
    - functionName:    Stream_SealLength
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 203
      functionLinenumberEnd: 217
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         24
      ICount:          94
      EdgeCount:       25
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_int_assert
        - winpr_log_backtrace
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:205,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/stream.c:206,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/stream.c:208,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/stream.c:213,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/utils/stream.c:214,3'
          Dst:             winpr_log_backtrace
    - functionName:    Stream_SetLength
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 181
      functionLinenumberEnd: 189
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_Capacity
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:182,13'
          Dst:             Stream_Capacity
    - functionName:    Stream_Capacity
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1355
      functionLinenumberEnd: 1357
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          31
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1356,3'
          Dst:             winpr_int_assert
    - functionName:    Stream_Free
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 168
      functionLinenumberEnd: 178
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          67
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_EnsureValidity
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:171,3'
          Dst:             Stream_EnsureValidity
    - functionName:    Stream_EnsureValidity
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 165
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          91
      EdgeCount:       19
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
        - abort
        - winpr_log_backtrace
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:159,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/utils/stream.c:159,2'
          Dst:             winpr_log_backtrace
        - Src:             'winpr/libwinpr/utils/stream.c:159,2'
          Dst:             abort
        - 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:163,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/utils/stream.c:163,2'
          Dst:             winpr_log_backtrace
        - Src:             'winpr/libwinpr/utils/stream.c:163,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
    - functionName:    Stream_StaticInit
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 139
      functionLinenumberEnd: 152
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          75
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    14
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:142,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/stream.c:143,2'
          Dst:             winpr_int_assert
    - functionName:    Stream_StaticConstInit
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 127
      functionLinenumberEnd: 135
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_StaticInit
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:135,9'
          Dst:             Stream_StaticInit
    - functionName:    Stream_New
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 124
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          113
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - calloc
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:100,6'
          Dst:             calloc
        - Src:             'winpr/libwinpr/utils/stream.c:107,22'
          Dst:             calloc
    - functionName:    Stream_EnsureRemainingCapacity
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 84
      functionLinenumberEnd: 91
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          56
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_Capacity
        - Stream_EnsureCapacity
        - Stream_GetPosition
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:85,21'
          Dst:             Stream_GetPosition
        - Src:             'winpr/libwinpr/utils/stream.c:88,19'
          Dst:             Stream_Capacity
        - Src:             'winpr/libwinpr/utils/stream.c:89,35'
          Dst:             Stream_Capacity
        - Src:             'winpr/libwinpr/utils/stream.c:89,10'
          Dst:             Stream_EnsureCapacity
    - functionName:    Stream_GetPosition
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1363
      functionLinenumberEnd: 1366
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          54
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1364,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1365,3'
          Dst:             winpr_int_assert
    - functionName:    Stream_EnsureCapacity
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 45
      functionLinenumberEnd: 81
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          148
      EdgeCount:       26
      CyclomaticComplexity: 7
      functionsReached:
        - Stream_GetPosition
        - Stream_SetPosition
        - realloc
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:46,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/stream.c:56,26'
          Dst:             Stream_GetPosition
        - Src:             'winpr/libwinpr/utils/stream.c:70,20'
          Dst:             realloc
        - Src:             'winpr/libwinpr/utils/stream.c:80,9'
          Dst:             Stream_SetPosition
    - functionName:    Stream_SetPosition
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 192
      functionLinenumberEnd: 200
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_Capacity
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:193,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:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - __xpg_strerror_r
      functionUses:    41
      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:
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          111
      EdgeCount:       32
      CyclomaticComplexity: 7
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - winpr_backtrace
        - winpr_backtrace_free
        - winpr_backtrace_symbols
      functionUses:    4
      BranchProfiles:  []
      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_PrintTextMessage
        - 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_PrintTextMessage
        - 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:
        - ''
      BBCount:         3
      ICount:          15
      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:
        - ''
        - ''
      BBCount:         9
      ICount:          47
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_unwind_backtrace_symbols
      functionUses:    3
      BranchProfiles:  []
      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:
        - ''
      BBCount:         6
      ICount:          26
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_unwind_backtrace_free
      functionUses:    2
      BranchProfiles:  []
      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: 323
      functionLinenumberEnd: 335
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          65
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintTextMessageVA
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:326,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:328,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:332,4'
          Dst:             WLog_PrintTextMessageVA
    - 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:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Get
        - winpr_log_backtrace_ex
      functionUses:    13
      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:
        - ''
        - ''
      BBCount:         12
      ICount:          71
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
        - strnlen
        - winpr_backtrace_symbols
        - write
      functionUses:    0
      BranchProfiles:  []
      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:    init_app_details
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 50
      functionLinenumberEnd: 65
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          45
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - strncpy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/winpr.c:53,7'
          Dst:             strncpy
        - Src:             'winpr/libwinpr/utils/winpr.c:56,7'
          Dst:             strncpy
    - functionName:    winpr_wcsndup
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 188
      functionLinenumberEnd: 197
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          58
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - calloc
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/winpr.c:192,16'
          Dst:             calloc
    - functionName:    winpr_get_build_config
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 176
      functionLinenumberEnd: 184
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          4
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    winpr_get_build_revision
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 171
      functionLinenumberEnd: 172
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          4
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    winpr_get_version_string
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 166
      functionLinenumberEnd: 167
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          4
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    winpr_get_version
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 163
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          49
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    winpr_areApplicationDetailsCustomized
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 151
      functionLinenumberEnd: 152
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    winpr_getApplicationDetailsVersion
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 144
      functionLinenumberEnd: 148
      functionDepth:   0
      returnType:      size_t
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          28
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - initializeApplicationDetails
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/winpr.c:145,7'
          Dst:             initializeApplicationDetails
    - functionName:    initializeApplicationDetails
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 69
      functionLinenumberEnd: 70
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - init_app_details
        - winpr_InitOnceExecuteOnce
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/winpr.c:70,9'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/utils/winpr.c:70,9'
          Dst:             init_app_details
    - functionName:    winpr_getApplicatonDetailsCombined
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 124
      functionLinenumberEnd: 140
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - char
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          50
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_asprintf
        - winpr_getApplicationDetailsProduct
        - winpr_getApplicationDetailsVendor
        - winpr_getApplicationDetailsVersion
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/winpr.c:125,26'
          Dst:             winpr_getApplicationDetailsVersion
        - Src:             'winpr/libwinpr/utils/winpr.c:126,23'
          Dst:             winpr_getApplicationDetailsVendor
        - Src:             'winpr/libwinpr/utils/winpr.c:127,24'
          Dst:             winpr_getApplicationDetailsProduct
        - Src:             'winpr/libwinpr/utils/winpr.c:133,9'
          Dst:             winpr_asprintf
        - Src:             'winpr/libwinpr/utils/winpr.c:137,9'
          Dst:             winpr_asprintf
    - functionName:    winpr_getApplicationDetailsVendor
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 97
      functionLinenumberEnd: 101
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          27
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - initializeApplicationDetails
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/winpr.c:98,7'
          Dst:             initializeApplicationDetails
    - functionName:    winpr_getApplicationDetailsProduct
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 104
      functionLinenumberEnd: 108
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          27
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - initializeApplicationDetails
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/winpr.c:105,7'
          Dst:             initializeApplicationDetails
    - functionName:    winpr_getApplicatonDetailsRegKey
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 111
      functionLinenumberEnd: 121
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_asprintf
        - winpr_getApplicatonDetailsCombined
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/winpr.c:112,14'
          Dst:             winpr_getApplicatonDetailsCombined
        - Src:             'winpr/libwinpr/utils/winpr.c:118,8'
          Dst:             winpr_asprintf
    - functionName:    winpr_setApplicationDetails
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/winpr.c'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 94
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          100
      EdgeCount:       27
      CyclomaticComplexity: 9
      functionsReached:
        - initializeApplicationDetails
        - strncpy
        - strnlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/winpr.c:75,7'
          Dst:             initializeApplicationDetails
        - Src:             'winpr/libwinpr/utils/winpr.c:80,22'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/utils/winpr.c:81,22'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/utils/winpr.c:85,7'
          Dst:             strncpy
        - Src:             'winpr/libwinpr/utils/winpr.c:88,7'
          Dst:             strncpy
    - functionName:    winpr_openssl_cleanup
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 286
      functionLinenumberEnd: 288
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_CleanupSSL
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/ssl.c:287,2'
          Dst:             winpr_CleanupSSL
    - functionName:    winpr_CleanupSSL
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 378
      functionLinenumberEnd: 420
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          41
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/ssl.c:383,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 323
      functionLinenumberEnd: 335
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          65
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintTextMessageVA
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:326,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:328,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:332,4'
          Dst:             WLog_PrintTextMessageVA
    - functionName:    winpr_FIPSMode
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 423
      functionLinenumberEnd: 429
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - FIPS_mode
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/ssl.c:429,10'
          Dst:             FIPS_mode
    - functionName:    FIPS_mode
      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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    winpr_enable_fips
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 246
      functionLinenumberEnd: 283
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          52
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - FIPS_mode
        - FIPS_mode_set
        - WLog_Print_dbg_tag
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/ssl.c:253,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/utils/ssl.c:263,7'
          Dst:             FIPS_mode
        - Src:             'winpr/libwinpr/utils/ssl.c:269,8'
          Dst:             FIPS_mode_set
        - Src:             'winpr/libwinpr/utils/ssl.c:271,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/utils/ssl.c:274,5'
          Dst:             WLog_Print_dbg_tag
    - functionName:    FIPS_mode_set
      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:    winpr_openssl_initialize
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 292
      functionLinenumberEnd: 345
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          61
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - OPENSSL_init_ssl
        - winpr_atexit
        - winpr_openssl_cleanup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/ssl.c:320,6'
          Dst:             OPENSSL_init_ssl
        - Src:             'winpr/libwinpr/utils/ssl.c:342,8'
          Dst:             winpr_atexit
        - Src:             'winpr/libwinpr/utils/ssl.c:342,8'
          Dst:             winpr_openssl_cleanup
    - functionName:    OPENSSL_init_ssl
      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:    winpr_InitializeSSL
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 350
      functionLinenumberEnd: 357
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_InitOnceExecuteOnce
        - winpr_enable_fips
        - winpr_openssl_initialize
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/ssl.c:353,7'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/utils/ssl.c:353,7'
          Dst:             winpr_openssl_initialize
        - Src:             'winpr/libwinpr/utils/ssl.c:356,9'
          Dst:             winpr_enable_fips
    - 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:
        - ''
      BBCount:         12
      ICount:          62
      EdgeCount:       22
      CyclomaticComplexity: 12
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/unwind/debug.c:64,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    winpr_unwind_backtrace_symbols
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/unwind/debug.c'
      linkageType:     InternalLinkage
      functionLinenumber: 168
      functionLinenumberEnd: 207
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          145
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - calloc
        - dladdr
        - snprintf
      functionUses:    1
      BranchProfiles:  []
      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:
        - ''
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      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:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      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: 323
      functionLinenumberEnd: 335
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          65
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintTextMessageVA
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:326,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:328,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:332,4'
          Dst:             WLog_PrintTextMessageVA
    - 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:
        - ''
        - ''
      BBCount:         9
      ICount:          65
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached:
        - _Unwind_GetIP
        - _Unwind_GetLanguageSpecificData
        - __assert_fail
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/unwind/debug.c:111,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/utils/unwind/debug.c:116,17'
          Dst:             _Unwind_GetIP
        - Src:             'winpr/libwinpr/utils/unwind/debug.c:122,38'
          Dst:             _Unwind_GetLanguageSpecificData
    - functionName:    _Unwind_GetIP
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    _Unwind_GetLanguageSpecificData
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    winpr_unwind_backtrace
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/unwind/debug.c'
      linkageType:     InternalLinkage
      functionLinenumber: 129
      functionLinenumberEnd: 156
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          75
      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:  []
      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:    ArrayList_Free
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/ArrayList.c'
      linkageType:     InternalLinkage
      functionLinenumber: 606
      functionLinenumberEnd: 614
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ArrayList_Clear
        - DeleteCriticalSection
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:610,2'
          Dst:             ArrayList_Clear
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:611,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:
        - ''
      BBCount:         16
      ICount:          86
      EdgeCount:       18
      CyclomaticComplexity: 4
      functionsReached:
        - ArrayList_Lock_Conditional
        - ArrayList_Unlock_Conditional
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      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:
        - ''
      BBCount:         12
      ICount:          42
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - EnterCriticalSection
        - winpr_int_assert
      functionUses:    9
      BranchProfiles:  []
      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:
        - ''
      BBCount:         12
      ICount:          42
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - LeaveCriticalSection
        - winpr_int_assert
      functionUses:    9
      BranchProfiles:  []
      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:
        - ''
        - ''
      BBCount:         1
      ICount:          12
      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: 603
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          78
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - ArrayList_EnsureCapacity
        - ArrayList_Free
        - ArrayList_Object
        - InitializeCriticalSectionAndSpinCount
        - calloc
      functionUses:    2
      BranchProfiles:  []
      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,7'
          Dst:             InitializeCriticalSectionAndSpinCount
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:600,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:
        - ''
      BBCount:         9
      ICount:          30
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      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:
        - ''
        - ''
      BBCount:         24
      ICount:          120
      EdgeCount:       27
      CyclomaticComplexity: 5
      functionsReached:
        - realloc
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      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:
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          103
      EdgeCount:       24
      CyclomaticComplexity: 4
      functionsReached:
        - ArrayList_Count
        - ArrayList_GetItem
        - ArrayList_Lock_Conditional
        - ArrayList_Unlock_Conditional
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      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:
        - ''
      BBCount:         9
      ICount:          31
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      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:
        - ''
        - ''
      BBCount:         12
      ICount:          52
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      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:
        - ''
        - ''
      BBCount:         3
      ICount:          29
      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:
        - ''
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          149
      EdgeCount:       36
      CyclomaticComplexity: 7
      functionsReached:
        - ArrayList_Lock_Conditional
        - ArrayList_Unlock_Conditional
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      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:
        - ''
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          142
      EdgeCount:       34
      CyclomaticComplexity: 8
      functionsReached:
        - ArrayList_Lock_Conditional
        - ArrayList_Unlock_Conditional
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      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:
        - ''
        - ''
      BBCount:         15
      ICount:          77
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - ArrayList_Lock_Conditional
        - ArrayList_Shift
        - ArrayList_Unlock_Conditional
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      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:
        - ''
        - ''
        - ''
      BBCount:         42
      ICount:          203
      EdgeCount:       49
      CyclomaticComplexity: 9
      functionsReached:
        - ArrayList_EnsureCapacity
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      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:
        - ''
        - ''
      BBCount:         22
      ICount:          120
      EdgeCount:       26
      CyclomaticComplexity: 6
      functionsReached:
        - ArrayList_Lock_Conditional
        - ArrayList_Shift
        - ArrayList_Unlock_Conditional
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      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:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          68
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - ArrayList_Lock_Conditional
        - ArrayList_SetItem
        - ArrayList_Shift
        - ArrayList_Unlock_Conditional
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      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,10'
          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:
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          104
      EdgeCount:       24
      CyclomaticComplexity: 6
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      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:
        - ''
        - ''
      BBCount:         12
      ICount:          60
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - ArrayList_EnsureCapacity
        - ArrayList_Lock_Conditional
        - ArrayList_SetItem
        - ArrayList_Unlock_Conditional
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      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:
        - ''
        - ''
      BBCount:         16
      ICount:          79
      EdgeCount:       18
      CyclomaticComplexity: 4
      functionsReached:
        - ArrayList_Lock_Conditional
        - ArrayList_Unlock_Conditional
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      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:
        - ''
      BBCount:         9
      ICount:          31
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - LeaveCriticalSection
        - winpr_int_assert
      functionUses:    5
      BranchProfiles:  []
      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:
        - ''
      BBCount:         9
      ICount:          31
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - EnterCriticalSection
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      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:
        - ''
      BBCount:         9
      ICount:          31
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      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:
        - ''
      BBCount:         9
      ICount:          28
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      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:
        - ''
      BBCount:         9
      ICount:          28
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      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:
        - ''
        - ''
      BBCount:         9
      ICount:          38
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      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:
        - ''
      BBCount:         9
      ICount:          31
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      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: 86
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - vsnprintf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:87,8'
          Dst:             vsnprintf
    - functionName:    log_invalid_fmt
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/Layout.c'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 119
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fprintf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:118,8'
          Dst:             fprintf
    - functionName:    check_and_log_format_size
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/Layout.c'
      linkageType:     InternalLinkage
      functionLinenumber: 123
      functionLinenumberEnd: 134
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - fprintf
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:127,9'
          Dst:             fprintf
    - functionName:    opt_compare_fn
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/Layout.c'
      linkageType:     InternalLinkage
      functionLinenumber: 137
      functionLinenumberEnd: 143
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - strncmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:142,9'
          Dst:             strncmp
    - functionName:    WLog_Layout_Free
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/Layout.c'
      linkageType:     InternalLinkage
      functionLinenumber: 455
      functionLinenumberEnd: 466
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          45
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    WLog_Layout_New
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/Layout.c'
      linkageType:     InternalLinkage
      functionLinenumber: 403
      functionLinenumberEnd: 452
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          114
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - GetEnvironmentVariableA
        - _strdup
        - calloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:408,24'
          Dst:             calloc
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:413,10'
          Dst:             GetEnvironmentVariableA
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:425,7'
          Dst:             GetEnvironmentVariableA
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:441,7'
          Dst:             _strdup
    - functionName:    WLog_Layout_SetPrefixFormat
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/Layout.c'
      linkageType:     InternalLinkage
      functionLinenumber: 387
      functionLinenumberEnd: 400
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          54
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - _strdup
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:393,26'
          Dst:             _strdup
    - functionName:    WLog_GetLogLayout
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/Layout.c'
      linkageType:     InternalLinkage
      functionLinenumber: 379
      functionLinenumberEnd: 382
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_GetLogAppender
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:381,13'
          Dst:             WLog_GetLogAppender
    - functionName:    WLog_PrintMessagePrefix
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/Layout.c'
      linkageType:     InternalLinkage
      functionLinenumber: 93
      functionLinenumberEnd: 98
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_PrintMessagePrefixVA
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:96,2'
          Dst:             WLog_PrintMessagePrefixVA
    - functionName:    replace_format_string
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/Layout.c'
      linkageType:     InternalLinkage
      functionLinenumber: 183
      functionLinenumberEnd: 242
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         88
      ICount:          415
      EdgeCount:       106
      CyclomaticComplexity: 20
      functionsReached:
        - WLog_GetGlobalPrefix
        - bsearch
        - check_and_log_format_size
        - log_invalid_fmt
        - opt_compare_fn
        - snprintf
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:184,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:185,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:188,23'
          Dst:             WLog_GetGlobalPrefix
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:191,19'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:200,7'
          Dst:             bsearch
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:200,7'
          Dst:             opt_compare_fn
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:218,20'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:223,36'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:223,36'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:222,10'
          Dst:             check_and_log_format_size
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:225,14'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:225,14'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:233,12'
          Dst:             log_invalid_fmt
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:235,9'
          Dst:             check_and_log_format_size
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:241,9'
          Dst:             check_and_log_format_size
    - functionName:    skip_if_null
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/Layout.c'
      linkageType:     InternalLinkage
      functionLinenumber: 150
      functionLinenumberEnd: 179
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         79
      ICount:          310
      EdgeCount:       89
      CyclomaticComplexity: 12
      functionsReached:
        - replace_format_string
        - strnlen
        - strstr
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:151,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:152,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:153,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:154,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:160,20'
          Dst:             strstr
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:163,14'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:163,14'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:168,28'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:168,28'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:173,7'
          Dst:             replace_format_string
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:177,17'
          Dst:             strnlen
    - functionName:    get_tid
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/Layout.c'
      linkageType:     InternalLinkage
      functionLinenumber: 101
      functionLinenumberEnd: 113
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          43
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - snprintf
        - syscall
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:103,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:108,16'
          Dst:             syscall
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:112,8'
          Dst:             snprintf
    - functionName:    WLog_Layout_GetMessagePrefix
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/Layout.c'
      linkageType:     InternalLinkage
      functionLinenumber: 246
      functionLinenumberEnd: 376
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          449
      EdgeCount:       25
      CyclomaticComplexity: 3
      functionsReached:
        - GetCurrentProcessId
        - GetLocalTime
        - WLog_PrintMessagePrefix
        - replace_format_string
        - winpr_int_assert
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:249,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:250,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:251,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:256,2'
          Dst:             GetLocalTime
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:341,12'
          Dst:             GetCurrentProcessId
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:365,7'
          Dst:             replace_format_string
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:371,2'
          Dst:             WLog_PrintMessagePrefix
    - functionName:    WLog_Message_GetOutputFileName
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/Message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 32
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          90
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - GetCombinedPath
        - GetCurrentProcessId
        - GetKnownSubPath
        - winpr_PathFileExists
        - winpr_PathMakePath
        - winpr_asprintf
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/Message.c:33,19'
          Dst:             GetKnownSubPath
        - Src:             'winpr/libwinpr/utils/wlog/Message.c:40,7'
          Dst:             winpr_PathFileExists
        - Src:             'winpr/libwinpr/utils/wlog/Message.c:42,8'
          Dst:             winpr_PathMakePath
        - Src:             'winpr/libwinpr/utils/wlog/Message.c:46,26'
          Dst:             GetCurrentProcessId
        - Src:             'winpr/libwinpr/utils/wlog/Message.c:48,3'
          Dst:             winpr_asprintf
        - Src:             'winpr/libwinpr/utils/wlog/Message.c:50,3'
          Dst:             winpr_asprintf
        - Src:             'winpr/libwinpr/utils/wlog/Message.c:52,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:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          55
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - fclose
        - fwrite
        - winpr_fopen
      functionUses:    2
      BranchProfiles:  []
      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: 30
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          33
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_bitmap_write
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/ImageMessage.c:29,21'
          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:
        - ''
        - ''
      BBCount:         9
      ICount:          45
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_Data_Write_UINT16_BE
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      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:
        - ''
        - ''
      BBCount:         9
      ICount:          48
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      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:
        - ''
        - ''
      BBCount:         9
      ICount:          48
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      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:
        - ''
        - ''
      BBCount:         9
      ICount:          36
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      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: 164
      functionLinenumberEnd: 174
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          96
      EdgeCount:       25
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:166,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:167,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:169,3'
          Dst:             winpr_int_assert
    - functionName:    IPv4Checksum
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/PacketMessage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 159
      functionLinenumberEnd: 176
      functionDepth:   0
      returnType:      short
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          72
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    Stream_Write_UINT32_BE_unchecked
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1113
      functionLinenumberEnd: 1118
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          42
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - winpr_Data_Write_UINT32_BE
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1114,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:1114,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1116,3'
          Dst:             winpr_Data_Write_UINT32_BE
    - functionName:    Stream_Write_UINT16_unchecked
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 925
      functionLinenumberEnd: 932
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          68
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - winpr_Data_Write_UINT16
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:926,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:927,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:928,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:928,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:930,3'
          Dst:             winpr_Data_Write_UINT16
    - functionName:    Stream_Write_UINT8_unchecked
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 873
      functionLinenumberEnd: 880
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          68
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - winpr_Data_Write_UINT8
        - winpr_int_assert
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:874,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:875,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:876,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:876,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:878,3'
          Dst:             winpr_Data_Write_UINT8
    - functionName:    Stream_Seek
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 157
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          51
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:158,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:159,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:159,3'
          Dst:             winpr_int_assert
    - functionName:    Stream_Write_UINT16_BE_unchecked
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 951
      functionLinenumberEnd: 958
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          68
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - winpr_Data_Write_UINT16_BE
        - winpr_int_assert
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:952,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:953,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:954,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:954,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:956,3'
          Dst:             winpr_Data_Write_UINT16_BE
    - functionName:    Stream_Write
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1187
      functionLinenumberEnd: 1196
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          77
      EdgeCount:       25
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_GetRemainingCapacity
        - Stream_Seek
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1190,4'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1191,4'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1192,4'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:1192,4'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1194,4'
          Dst:             Stream_Seek
    - functionName:    Pcap_Write_RecordContent
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/PacketMessage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 50
      functionLinenumberEnd: 51
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          49
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - fwrite
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:51,30'
          Dst:             fwrite
    - functionName:    WLog_PacketMessage_Write_TcpHeader
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/PacketMessage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 213
      functionLinenumberEnd: 242
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         145
      ICount:          465
      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:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:222,6'
          Dst:             Stream_StaticInit
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:225,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:225,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:225,2'
          Dst:             Stream_Write_UINT16_BE_unchecked
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:226,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:226,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:226,2'
          Dst:             Stream_Write_UINT16_BE_unchecked
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:227,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:227,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:227,2'
          Dst:             Stream_Write_UINT32_BE_unchecked
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:228,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:228,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:228,2'
          Dst:             Stream_Write_UINT32_BE_unchecked
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:229,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:229,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:229,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:230,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:230,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:230,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:231,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:231,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:231,2'
          Dst:             Stream_Write_UINT16_BE_unchecked
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:232,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:232,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:232,2'
          Dst:             Stream_Write_UINT16_BE_unchecked
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:233,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:233,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:233,2'
          Dst:             Stream_Write_UINT16_BE_unchecked
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:237,7'
          Dst:             fwrite
    - functionName:    WLog_PacketMessage_Write_IPv4Header
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/PacketMessage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 180
      functionLinenumberEnd: 210
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         170
      ICount:          561
      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:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:189,6'
          Dst:             Stream_StaticInit
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:192,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:192,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:192,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:193,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:193,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:193,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:194,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:194,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:194,2'
          Dst:             Stream_Write_UINT16_BE_unchecked
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:195,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:195,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:195,2'
          Dst:             Stream_Write_UINT16_BE_unchecked
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:196,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:196,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:196,2'
          Dst:             Stream_Write_UINT16_BE_unchecked
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:197,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:197,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:197,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:198,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:198,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:198,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:199,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:199,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:199,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:200,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:200,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:200,2'
          Dst:             Stream_Write_UINT32_BE_unchecked
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:201,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:201,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:201,2'
          Dst:             Stream_Write_UINT32_BE_unchecked
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:202,25'
          Dst:             IPv4Checksum
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:203,2'
          Dst:             Stream_Rewind
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:204,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:204,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:204,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:206,6'
          Dst:             fwrite
    - functionName:    WLog_PacketMessage_Write_EthernetHeader
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/PacketMessage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 137
      functionLinenumberEnd: 156
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         30
      ICount:          130
      EdgeCount:       35
      CyclomaticComplexity: 7
      functionsReached:
        - Stream_StaticInit
        - Stream_Write
        - Stream_Write_UINT16_BE_unchecked
        - fwrite
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:146,6'
          Dst:             Stream_StaticInit
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:149,2'
          Dst:             Stream_Write
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:150,2'
          Dst:             Stream_Write
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:151,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:151,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:151,2'
          Dst:             Stream_Write_UINT16_BE_unchecked
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:152,6'
          Dst:             fwrite
    - functionName:    Pcap_Write_RecordHeader
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/PacketMessage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 45
      functionLinenumberEnd: 46
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          44
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - fwrite
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:46,30'
          Dst:             fwrite
    - functionName:    WLog_PacketMessage_Write
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/PacketMessage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 248
      functionLinenumberEnd: 360
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         110
      ICount:          579
      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:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:322,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:323,31'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:323,31'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:330,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:331,30'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:331,30'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:343,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:344,25'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:344,25'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:349,14'
          Dst:             winpr_GetUnixTimeNS
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:353,7'
          Dst:             Pcap_Write_RecordHeader
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:354,7'
          Dst:             WLog_PacketMessage_Write_EthernetHeader
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:355,7'
          Dst:             WLog_PacketMessage_Write_IPv4Header
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:356,7'
          Dst:             WLog_PacketMessage_Write_TcpHeader
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:356,58'
          Dst:             Pcap_Write_RecordContent
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:358,8'
          Dst:             fflush
    - functionName:    Pcap_Write_Record
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/PacketMessage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 55
      functionLinenumberEnd: 56
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - Pcap_Write_RecordContent
        - Pcap_Write_RecordHeader
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:56,9'
          Dst:             Pcap_Write_RecordHeader
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:56,59'
          Dst:             Pcap_Write_RecordContent
    - functionName:    Pcap_Flush
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/PacketMessage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 111
      functionLinenumberEnd: 123
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          67
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - Pcap_Write_Record
        - fflush
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:117,8'
          Dst:             Pcap_Write_Record
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:122,8'
          Dst:             fflush
    - functionName:    Pcap_Close
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/PacketMessage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 126
      functionLinenumberEnd: 134
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          42
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - Pcap_Flush
        - fclose
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:130,2'
          Dst:             Pcap_Flush
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:132,9'
          Dst:             fclose
    - functionName:    Pcap_Read_Header
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/PacketMessage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          44
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - fread
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:36,30'
          Dst:             fread
    - functionName:    _ftelli64
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wtypes.h'
      linkageType:     InternalLinkage
      functionLinenumber: 503
      functionLinenumberEnd: 504
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ftello64
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/wtypes.h:504,9'
          Dst:             ftello64
    - functionName:    _fseeki64
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wtypes.h'
      linkageType:     InternalLinkage
      functionLinenumber: 497
      functionLinenumberEnd: 498
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fseeko64
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/wtypes.h:498,9'
          Dst:             fseeko64
    - functionName:    Pcap_Write_Header
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/PacketMessage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 40
      functionLinenumberEnd: 41
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          44
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - fwrite
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:41,30'
          Dst:             fwrite
    - functionName:    Pcap_Open
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/PacketMessage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 60
      functionLinenumberEnd: 108
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          173
      EdgeCount:       33
      CyclomaticComplexity: 11
      functionsReached:
        - Pcap_Close
        - Pcap_Read_Header
        - Pcap_Write_Header
        - _fseeki64
        - _ftelli64
        - calloc
        - winpr_fopen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:64,24'
          Dst:             calloc
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:69,13'
          Dst:             winpr_fopen
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:87,8'
          Dst:             Pcap_Write_Header
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:92,7'
          Dst:             _fseeki64
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:94,30'
          Dst:             _ftelli64
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:97,7'
          Dst:             _fseeki64
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:99,8'
          Dst:             Pcap_Read_Header
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:106,2'
          Dst:             Pcap_Close
    - 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:
        - ''
      BBCount:         3
      ICount:          14
      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: 323
      functionLinenumberEnd: 335
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          65
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintTextMessageVA
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:326,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:328,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:332,4'
          Dst:             WLog_PrintTextMessageVA
    - 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:
        - ''
        - ''
      BBCount:         3
      ICount:          16
      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:
        - ''
      BBCount:         3
      ICount:          14
      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:
        - ''
        - ''
      BBCount:         3
      ICount:          16
      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:
        - ''
      BBCount:         3
      ICount:          14
      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:
        - ''
      BBCount:         3
      ICount:          14
      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:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          20
      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:
        - ''
      BBCount:         3
      ICount:          14
      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:
        - ''
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - NtCurrentTeb
      functionUses:    261
      BranchProfiles:  []
      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:          32
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - NtCurrentTeb
      functionUses:    6
      BranchProfiles:  []
      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:
        - ''
      BBCount:         3
      ICount:          14
      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:  []
      Callsites:
        - Src:             'winpr/libwinpr/error/error.c:33,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    IsProcessorFeaturePresentEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1095
      functionLinenumberEnd: 1309
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         67
      ICount:          285
      EdgeCount:       77
      CyclomaticComplexity: 12
      functionsReached:
        - cpuid
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:1143,2'
          Branch Sides:    []
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:1205,5'
          Branch Sides:    []
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:1214,7'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:1141,2'
          Dst:             cpuid
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:1151,4'
          Dst:             cpuid
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:1213,7'
          Dst:             cpuid
    - functionName:    cpuid
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 699
      functionLinenumberEnd: 725
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          43
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    GetTickCountPrecise
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1082
      functionLinenumberEnd: 1090
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - GetTickCount
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:1090,9'
          Dst:             GetTickCount
    - functionName:    GetTickCount
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 342
      functionLinenumberEnd: 343
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          13
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_GetTickCount64
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:343,16'
          Dst:             winpr_GetTickCount64
    - functionName:    winpr_GetTickCount64
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 583
      functionLinenumberEnd: 585
      functionDepth:   0
      returnType:      size_t
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_GetTickCount64NS
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:584,20'
          Dst:             winpr_GetTickCount64NS
    - functionName:    winpr_GetTickCount64NS
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 591
      functionLinenumberEnd: 633
      functionDepth:   0
      returnType:      size_t
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         48
      ICount:          167
      EdgeCount:       55
      CyclomaticComplexity: 9
      functionsReached:
        - clock_gettime
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:596,6'
          Dst:             clock_gettime
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:597,12'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:597,12'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:598,11'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:598,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: 798
      functionLinenumberEnd: 1076
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         29
      ICount:          176
      EdgeCount:       32
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
        - cpuid
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:988,2'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:986,2'
          Dst:             cpuid
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:1042,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 323
      functionLinenumberEnd: 335
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          65
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintTextMessageVA
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:326,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:328,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:332,4'
          Dst:             WLog_PrintTextMessageVA
    - functionName:    GetComputerNameExW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 539
      functionLinenumberEnd: 567
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          105
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - ConvertUtf8NToWChar
        - GetComputerNameExA
        - SetLastError
        - calloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:545,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:551,15'
          Dst:             calloc
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:557,7'
          Dst:             GetComputerNameExA
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:561,23'
          Dst:             ConvertUtf8NToWChar
    - functionName:    GetComputerNameExA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 483
      functionLinenumberEnd: 536
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         33
      ICount:          168
      EdgeCount:       40
      CyclomaticComplexity: 9
      functionsReached:
        - GetComputerNameA
        - GetLastError
        - SetLastError
        - gethostname
        - strnlen
      functionUses:    3
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:511,2'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:489,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:495,13'
          Dst:             GetComputerNameA
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:499,8'
          Dst:             GetLastError
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:500,5'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:506,6'
          Dst:             gethostname
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:509,11'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:522,5'
          Dst:             SetLastError
    - functionName:    GetComputerNameA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 449
      functionLinenumberEnd: 480
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         40
      ICount:          185
      EdgeCount:       49
      CyclomaticComplexity: 11
      functionsReached:
        - SetLastError
        - gethostname
        - strchr
        - strncpy
        - strnlen
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:452,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:457,6'
          Dst:             gethostname
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:460,18'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:461,20'
          Dst:             strchr
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:464,25'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:464,25'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:471,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:476,2'
          Dst:             strncpy
    - functionName:    GetComputerNameW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 423
      functionLinenumberEnd: 446
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          111
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - ConvertUtf8NToWChar
        - GetComputerNameA
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:435,7'
          Dst:             GetComputerNameA
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:439,23'
          Dst:             ConvertUtf8NToWChar
    - functionName:    GetSystemTimeAdjustment
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 329
      functionLinenumberEnd: 332
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:331,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    GetSystemTimeAsFileTime
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 315
      functionLinenumberEnd: 324
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_GetUnixTimeNS
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:322,11'
          Dst:             winpr_GetUnixTimeNS
    - functionName:    winpr_GetUnixTimeNS
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 637
      functionLinenumberEnd: 659
      functionDepth:   0
      returnType:      size_t
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         48
      ICount:          167
      EdgeCount:       55
      CyclomaticComplexity: 9
      functionsReached:
        - clock_gettime
        - winpr_int_assert
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:649,6'
          Dst:             clock_gettime
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:651,9'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:651,9'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:652,9'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:652,9'
          Dst:             winpr_int_assert
    - functionName:    SetLocalTime
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 308
      functionLinenumberEnd: 311
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          14
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:310,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    GetLocalTime
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 283
      functionLinenumberEnd: 305
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          102
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - localtime_r
        - winpr_GetUnixTimeNS
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:288,15'
          Dst:             winpr_GetUnixTimeNS
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:291,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: 276
      functionLinenumberEnd: 279
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          14
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:278,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    GetSystemTime
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 251
      functionLinenumberEnd: 273
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          102
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - gmtime_r
        - winpr_GetUnixTimeNS
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:256,15'
          Dst:             winpr_GetUnixTimeNS
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:259,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: 246
      functionLinenumberEnd: 248
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - GetSystemInfo
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:247,2'
          Dst:             GetSystemInfo
    - functionName:    GetSystemInfo
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 234
      functionLinenumberEnd: 243
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          45
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - GetNumberOfProcessors
        - GetProcessorArchitecture
        - GetSystemPageSize
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:236,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:240,6'
          Dst:             GetProcessorArchitecture
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:241,29'
          Dst:             GetSystemPageSize
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:242,39'
          Dst:             GetNumberOfProcessors
    - functionName:    GetProcessorArchitecture
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 111
      functionLinenumberEnd: 183
      functionDepth:   0
      returnType:      short
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    GetSystemPageSize
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 208
      functionLinenumberEnd: 230
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         15
      ICount:          72
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - sysconf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:214,18'
          Dst:             sysconf
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:220,18'
          Dst:             sysconf
    - functionName:    GetNumberOfProcessors
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 187
      functionLinenumberEnd: 204
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sysconf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:202,19'
          Dst:             sysconf
    - functionName:    winpr_set_cloexec
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/handle/handle.c'
      linkageType:     InternalLinkage
      functionLinenumber: 151
      functionLinenumberEnd: 158
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          57
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - fcntl64
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/handle/handle.c:152,20'
          Dst:             fcntl64
        - Src:             'winpr/libwinpr/handle/handle.c:157,9'
          Dst:             fcntl64
    - functionName:    SetHandleInformation
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/handle/handle.c'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 148
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          105
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - WLog_Print_dbg_tag
        - __errno_location
        - fcntl64
        - winpr_Handle_getFd
        - winpr_strerror
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/handle/handle.c:118,17'
          Dst:             winpr_Handle_getFd
        - Src:             'winpr/libwinpr/handle/handle.c:121,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/handle/handle.c:131,14'
          Dst:             fcntl64
        - Src:             'winpr/libwinpr/handle/handle.c:135,3'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/handle/handle.c:135,3'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/handle/handle.c:135,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/handle/handle.c:140,6'
          Dst:             fcntl64
        - Src:             'winpr/libwinpr/handle/handle.c:143,3'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/handle/handle.c:143,3'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/handle/handle.c:143,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    winpr_Handle_getFd
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/handle/../synch/../handle/handle.h'
      linkageType:     InternalLinkage
      functionLinenumber: 208
      functionLinenumberEnd: 219
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          72
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - winpr_Handle_GetInfo
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/handle/../synch/../handle/handle.h:212,7'
          Dst:             winpr_Handle_GetInfo
    - functionName:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 323
      functionLinenumberEnd: 335
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          65
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintTextMessageVA
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:326,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:328,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:332,4'
          Dst:             WLog_PrintTextMessageVA
    - functionName:    winpr_Handle_GetInfo
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/handle/../synch/../handle/handle.h'
      linkageType:     InternalLinkage
      functionLinenumber: 152
      functionLinenumberEnd: 171
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    GetHandleInformation
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/handle/handle.c'
      linkageType:     InternalLinkage
      functionLinenumber: 93
      functionLinenumberEnd: 114
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          72
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
        - __errno_location
        - fcntl64
        - winpr_Handle_getFd
        - winpr_strerror
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/handle/handle.c:97,17'
          Dst:             winpr_Handle_getFd
        - Src:             'winpr/libwinpr/handle/handle.c:100,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/handle/handle.c:104,20'
          Dst:             fcntl64
        - Src:             'winpr/libwinpr/handle/handle.c:108,3'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/handle/handle.c:108,3'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/handle/handle.c:108,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    DuplicateHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/handle/handle.c'
      linkageType:     InternalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 89
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - SetLastError
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/handle/handle.c:87,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/handle/handle.c:88,2'
          Dst:             SetLastError
    - functionName:    winpr_Handle_Release
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/handle/../synch/../handle/handle.h'
      linkageType:     InternalLinkage
      functionLinenumber: 192
      functionLinenumberEnd: 204
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          55
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - InterlockedDecrement
        - winpr_Handle_GetInfo
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/handle/../synch/../handle/handle.h:196,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/handle/../synch/../handle/handle.h:199,6'
          Dst:             InterlockedDecrement
    - functionName:    CloseHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/handle/handle.c'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 78
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          108
      EdgeCount:       28
      CyclomaticComplexity: 9
      functionsReached:
        - winpr_Handle_ConvertToNone
        - winpr_Handle_GetInfo
        - winpr_Handle_Release
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/handle/handle.c:53,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/handle/handle.c:74,7'
          Dst:             winpr_Handle_Release
        - Src:             'winpr/libwinpr/handle/handle.c:75,3'
          Dst:             winpr_Handle_ConvertToNone
    - functionName:    WINPR_HANDLE_IS_HANDLED
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/handle/handle.h'
      linkageType:     InternalLinkage
      functionLinenumber: 122
      functionLinenumberEnd: 139
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          76
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - SetLastError
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/handle/handle.h:134,3'
          Dst:             SetLastError
    - functionName:    NoneHandleGetFd
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/handle/nonehandle.c'
      linkageType:     InternalLinkage
      functionLinenumber: 40
      functionLinenumberEnd: 45
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          30
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - NoneHandleIsHandle
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/handle/nonehandle.c:41,7'
          Dst:             NoneHandleIsHandle
    - functionName:    NoneHandleIsHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/handle/nonehandle.c'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WINPR_HANDLE_IS_HANDLED
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/handle/nonehandle.c:36,9'
          Dst:             WINPR_HANDLE_IS_HANDLED
    - functionName:    NoneHandleCloseHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/handle/nonehandle.c'
      linkageType:     InternalLinkage
      functionLinenumber: 30
      functionLinenumberEnd: 31
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          6
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    winpr_Handle_ConvertToNone
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/handle/nonehandle.c'
      linkageType:     InternalLinkage
      functionLinenumber: 82
      functionLinenumberEnd: 91
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          29
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    CreateNoneHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/handle/nonehandle.c'
      linkageType:     InternalLinkage
      functionLinenumber: 70
      functionLinenumberEnd: 79
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - calloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/handle/nonehandle.c:71,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:
        - ''
      BBCount:         25
      ICount:          128
      EdgeCount:       28
      CyclomaticComplexity: 5
      functionsReached:
        - pthread_mutex_lock
        - pthread_mutex_unlock
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      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:
        - ''
        - ''
        - ''
      BBCount:         47
      ICount:          244
      EdgeCount:       57
      CyclomaticComplexity: 12
      functionsReached:
        - apc_item_remove
        - pollset_isSignaled
        - pthread_mutex_lock
        - pthread_mutex_unlock
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      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:
        - ''
        - ''
      BBCount:         21
      ICount:          98
      EdgeCount:       23
      CyclomaticComplexity: 4
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      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:
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          124
      EdgeCount:       34
      CyclomaticComplexity: 5
      functionsReached:
        - pollset_add
        - pthread_mutex_lock
        - pthread_mutex_unlock
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      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:
        - ''
      BBCount:         25
      ICount:          118
      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:  []
      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: 323
      functionLinenumberEnd: 335
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          65
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintTextMessageVA
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:326,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:328,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:332,4'
          Dst:             WLog_PrintTextMessageVA
    - 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:
        - ''
        - ''
      BBCount:         24
      ICount:          113
      EdgeCount:       25
      CyclomaticComplexity: 3
      functionsReached:
        - GetCurrentThreadId
        - pthread_mutex_lock
        - pthread_mutex_unlock
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      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:
        - ''
      BBCount:         9
      ICount:          34
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - pthread_mutex_destroy
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      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:
        - ''
      BBCount:         15
      ICount:          63
      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:  []
      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: 280
      functionLinenumberEnd: 282
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/argv.c:281,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 323
      functionLinenumberEnd: 335
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          65
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintTextMessageVA
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:326,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:328,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:332,4'
          Dst:             WLog_PrintTextMessageVA
    - functionName:    CommandLineToArgvA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/argv.c'
      linkageType:     InternalLinkage
      functionLinenumber: 90
      functionLinenumberEnd: 275
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         137
      ICount:          750
      EdgeCount:       170
      CyclomaticComplexity: 35
      functionsReached:
        - WLog_Print_dbg_tag
        - calloc
        - strcspn
        - strlen
        - strspn
        - strstr
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      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:252,11'
          Dst:             strcspn
        - Src:             'winpr/libwinpr/thread/argv.c:268,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: 233
      functionLinenumberEnd: 241
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          38
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - pthread_cond_destroy
        - pthread_mutex_destroy
        - run_cond_fkt_
        - run_mutex_fkt_
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:236,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/thread.c:238,2'
          Dst:             run_cond_fkt_
        - Src:             'winpr/libwinpr/thread/thread.c:238,2'
          Dst:             pthread_cond_destroy
        - Src:             'winpr/libwinpr/thread/thread.c:239,2'
          Dst:             run_mutex_fkt_
        - Src:             'winpr/libwinpr/thread/thread.c:239,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: 197
      functionLinenumberEnd: 209
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          72
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_int_assert
        - winpr_strerror
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:200,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/thread.c:201,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/thread.c:207,3'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/thread/thread.c:207,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    run_mutex_fkt_
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 161
      functionLinenumberEnd: 173
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          72
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_int_assert
        - winpr_strerror
      functionUses:    13
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:164,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/thread.c:165,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/thread.c:171,3'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/thread/thread.c:171,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 323
      functionLinenumberEnd: 335
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          65
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintTextMessageVA
      functionUses:    24
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:326,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:328,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:332,4'
          Dst:             WLog_PrintTextMessageVA
    - functionName:    mux_condition_bundle_signal
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 244
      functionLinenumberEnd: 256
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          76
      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:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:246,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/thread.c:248,7'
          Dst:             run_mutex_fkt_
        - Src:             'winpr/libwinpr/thread/thread.c:248,7'
          Dst:             pthread_mutex_lock
        - Src:             'winpr/libwinpr/thread/thread.c:251,7'
          Dst:             run_cond_fkt_
        - Src:             'winpr/libwinpr/thread/thread.c:251,7'
          Dst:             pthread_cond_signal
        - Src:             'winpr/libwinpr/thread/thread.c:253,7'
          Dst:             run_mutex_fkt_
        - Src:             'winpr/libwinpr/thread/thread.c:253,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: 213
      functionLinenumberEnd: 216
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          44
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - pthread_mutex_trylock
        - pthread_mutex_unlock
        - winpr_int_assert
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:214,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/thread.c:215,2'
          Dst:             pthread_mutex_trylock
        - Src:             'winpr/libwinpr/thread/thread.c:215,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/thread.c:216,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: 307
      functionLinenumberEnd: 310
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          31
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - mux_condition_bundle_signal
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      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:    signal_and_wait_for_ready
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 471
      functionLinenumberEnd: 500
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          81
      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:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:474,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/thread.c:476,7'
          Dst:             mux_condition_bundle_lock
        - Src:             'winpr/libwinpr/thread/thread.c:479,7'
          Dst:             signal_thread_ready
        - Src:             'winpr/libwinpr/thread/thread.c:482,7'
          Dst:             mux_condition_bundle_wait
        - Src:             'winpr/libwinpr/thread/thread.c:496,7'
          Dst:             mux_condition_bundle_unlock
    - functionName:    mux_condition_bundle_lock
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 259
      functionLinenumberEnd: 261
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          31
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - pthread_mutex_lock
        - run_mutex_fkt_
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:260,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/thread.c:261,9'
          Dst:             run_mutex_fkt_
        - Src:             'winpr/libwinpr/thread/thread.c:261,9'
          Dst:             pthread_mutex_lock
    - functionName:    mux_condition_bundle_wait
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 271
      functionLinenumberEnd: 303
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         35
      ICount:          122
      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:286,4'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:274,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/thread.c:275,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/thread.c:276,2'
          Dst:             pthread_mutex_trylock
        - Src:             'winpr/libwinpr/thread/thread.c:276,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/thread.c:280,11'
          Dst:             pthread_cond_wait
        - Src:             'winpr/libwinpr/thread/thread.c:284,4'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/thread/thread.c:284,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    mux_condition_bundle_unlock
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 265
      functionLinenumberEnd: 267
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          31
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - pthread_mutex_checked_unlock
        - run_mutex_fkt_
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:266,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/thread.c:267,9'
          Dst:             run_mutex_fkt_
        - Src:             'winpr/libwinpr/thread/thread.c:267,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: 314
      functionLinenumberEnd: 317
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          31
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - mux_condition_bundle_signal
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:315,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/thread.c:317,9'
          Dst:             mux_condition_bundle_signal
    - functionName:    thread_launcher
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 506
      functionLinenumberEnd: 558
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         24
      ICount:          139
      EdgeCount:       32
      CyclomaticComplexity: 10
      functionsReached:
        - WLog_Print_dbg_tag
        - apc_cleanupThread
        - cleanup_handle
        - pthread_self
        - pthread_setspecific
        - set_event
        - signal_and_wait_for_ready
        - signal_thread_ready
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:513,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/thread/thread.c:517,18'
          Dst:             pthread_setspecific
        - Src:             'winpr/libwinpr/thread/thread.c:520,3'
          Dst:             pthread_self
        - Src:             'winpr/libwinpr/thread/thread.c:520,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/thread/thread.c:533,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/thread/thread.c:537,7'
          Dst:             signal_and_wait_for_ready
        - Src:             'winpr/libwinpr/thread/thread.c:545,3'
          Dst:             apc_cleanupThread
        - Src:             'winpr/libwinpr/thread/thread.c:550,3'
          Dst:             set_event
        - Src:             'winpr/libwinpr/thread/thread.c:552,9'
          Dst:             signal_thread_ready
        - Src:             'winpr/libwinpr/thread/thread.c:555,4'
          Dst:             cleanup_handle
    - 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:    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:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    set_event
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 412
      functionLinenumberEnd: 413
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_event_set
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:413,9'
          Dst:             winpr_event_set
    - functionName:    cleanup_handle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 744
      functionLinenumberEnd: 771
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          53
      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:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:749,7'
          Dst:             apc_uninit
        - Src:             'winpr/libwinpr/thread/thread.c:750,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/thread/thread.c:752,2'
          Dst:             mux_condition_bundle_uninit
        - Src:             'winpr/libwinpr/thread/thread.c:753,2'
          Dst:             mux_condition_bundle_uninit
        - Src:             'winpr/libwinpr/thread/thread.c:754,2'
          Dst:             run_mutex_fkt_
        - Src:             'winpr/libwinpr/thread/thread.c:754,2'
          Dst:             pthread_mutex_destroy
        - Src:             'winpr/libwinpr/thread/thread.c:756,2'
          Dst:             winpr_event_uninit
    - functionName:    reset_event
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 417
      functionLinenumberEnd: 418
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_event_reset
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:418,9'
          Dst:             winpr_event_reset
    - functionName:    run_cond_init_
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 179
      functionLinenumberEnd: 191
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          75
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_int_assert
        - winpr_strerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:182,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/thread.c:183,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/thread.c:189,3'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/thread/thread.c:189,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    dump_thread
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 363
      functionLinenumberEnd: 405
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          7
      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: 122
      functionLinenumberEnd: 139
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          76
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - SetLastError
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/../handle/handle.h:134,3'
          Dst:             SetLastError
    - functionName:    ThreadCleanupHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 321
      functionLinenumberEnd: 353
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          99
      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:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:325,7'
          Dst:             ThreadIsHandled
        - Src:             'winpr/libwinpr/thread/thread.c:328,7'
          Dst:             run_mutex_fkt_
        - Src:             'winpr/libwinpr/thread/thread.c:328,7'
          Dst:             pthread_mutex_lock
        - Src:             'winpr/libwinpr/thread/thread.c:333,12'
          Dst:             pthread_join
        - Src:             'winpr/libwinpr/thread/thread.c:338,4'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/thread/thread.c:338,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/thread/thread.c:349,7'
          Dst:             run_mutex_fkt_
        - Src:             'winpr/libwinpr/thread/thread.c:349,7'
          Dst:             pthread_mutex_checked_unlock
    - functionName:    ThreadIsHandled
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 125
      functionLinenumberEnd: 126
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WINPR_HANDLE_IS_HANDLED
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:126,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: 130
      functionLinenumberEnd: 137
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ThreadIsHandled
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:133,7'
          Dst:             ThreadIsHandled
    - functionName:    ThreadCloseHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 774
      functionLinenumberEnd: 810
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          53
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
        - WaitForSingleObject
        - cleanup_handle
        - dump_thread
        - pthread_detach
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:792,3'
          Dst:             dump_thread
        - Src:             'winpr/libwinpr/thread/thread.c:794,29'
          Dst:             WaitForSingleObject
        - Src:             'winpr/libwinpr/thread/thread.c:796,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/thread/thread.c:798,4'
          Dst:             pthread_detach
        - Src:             'winpr/libwinpr/thread/thread.c:802,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: 1062
      functionLinenumberEnd: 1127
      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: 1033
      functionLinenumberEnd: 1059
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          86
      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:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:1038,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/thread/thread.c:1045,7'
          Dst:             run_mutex_fkt_
        - Src:             'winpr/libwinpr/thread/thread.c:1045,7'
          Dst:             pthread_mutex_lock
        - Src:             'winpr/libwinpr/thread/thread.c:1049,2'
          Dst:             pthread_cancel
        - Src:             'winpr/libwinpr/thread/thread.c:1054,7'
          Dst:             run_mutex_fkt_
        - Src:             'winpr/libwinpr/thread/thread.c:1054,7'
          Dst:             pthread_mutex_checked_unlock
        - Src:             'winpr/libwinpr/thread/thread.c:1057,2'
          Dst:             set_event
    - functionName:    winpr_Handle_GetInfo
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/../handle/handle.h'
      linkageType:     InternalLinkage
      functionLinenumber: 152
      functionLinenumberEnd: 171
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      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: 1021
      functionLinenumberEnd: 1029
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          24
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sched_yield
        - usleep
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:1026,6'
          Dst:             sched_yield
        - Src:             'winpr/libwinpr/thread/thread.c:1027,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: 1014
      functionLinenumberEnd: 1017
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - SetLastError
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:1015,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/thread/thread.c:1016,2'
          Dst:             SetLastError
    - functionName:    ResumeThread
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 979
      functionLinenumberEnd: 1011
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          101
      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:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:984,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/thread/thread.c:986,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/thread/thread.c:987,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/thread/thread.c:993,7'
          Dst:             run_mutex_fkt_
        - Src:             'winpr/libwinpr/thread/thread.c:993,7'
          Dst:             pthread_mutex_lock
        - Src:             'winpr/libwinpr/thread/thread.c:998,8'
          Dst:             winpr_StartThread
        - Src:             'winpr/libwinpr/thread/thread.c:1000,4'
          Dst:             run_mutex_fkt_
        - Src:             'winpr/libwinpr/thread/thread.c:1000,4'
          Dst:             pthread_mutex_checked_unlock
        - Src:             'winpr/libwinpr/thread/thread.c:1005,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/thread/thread.c:1007,7'
          Dst:             run_mutex_fkt_
        - Src:             'winpr/libwinpr/thread/thread.c:1007,7'
          Dst:             pthread_mutex_checked_unlock
    - functionName:    winpr_StartThread
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 562
      functionLinenumberEnd: 618
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         27
      ICount:          147
      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:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:567,7'
          Dst:             mux_condition_bundle_lock
        - Src:             'winpr/libwinpr/thread/thread.c:571,2'
          Dst:             pthread_attr_init
        - Src:             'winpr/libwinpr/thread/thread.c:572,2'
          Dst:             pthread_attr_setdetachstate
        - Src:             'winpr/libwinpr/thread/thread.c:575,3'
          Dst:             pthread_attr_setstacksize
        - Src:             'winpr/libwinpr/thread/thread.c:578,2'
          Dst:             reset_event
        - Src:             'winpr/libwinpr/thread/thread.c:588,6'
          Dst:             pthread_create
        - Src:             'winpr/libwinpr/thread/thread.c:588,6'
          Dst:             thread_launcher
        - Src:             'winpr/libwinpr/thread/thread.c:591,7'
          Dst:             mux_condition_bundle_wait
        - Src:             'winpr/libwinpr/thread/thread.c:595,7'
          Dst:             mux_condition_bundle_unlock
        - Src:             'winpr/libwinpr/thread/thread.c:598,7'
          Dst:             signal_thread_is_running
        - Src:             'winpr/libwinpr/thread/thread.c:600,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/thread/thread.c:608,8'
          Dst:             mux_condition_bundle_unlock
        - Src:             'winpr/libwinpr/thread/thread.c:612,2'
          Dst:             pthread_attr_destroy
        - Src:             'winpr/libwinpr/thread/thread.c:615,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: 934
      functionLinenumberEnd: 940
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    QueueUserAPC
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 943
      functionLinenumberEnd: 976
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          104
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - SetLastError
        - WLog_Print_dbg_tag
        - apc_register
        - calloc
        - winpr_Handle_GetInfo
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:952,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/thread/thread.c:954,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/thread/thread.c:955,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/thread/thread.c:959,12'
          Dst:             calloc
        - Src:             'winpr/libwinpr/thread/thread.c:962,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/thread/thread.c:974,2'
          Dst:             apc_register
    - functionName:    GetCurrentThreadId
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 910
      functionLinenumberEnd: 916
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          13
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - syscall
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:916,9'
          Dst:             syscall
    - functionName:    _GetCurrentThread
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 905
      functionLinenumberEnd: 906
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_GetCurrentThread
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:906,17'
          Dst:             winpr_GetCurrentThread
    - functionName:    winpr_GetCurrentThread
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 892
      functionLinenumberEnd: 902
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         8
      ICount:          43
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - initializeThreads
        - pthread_getspecific
        - pthread_self
        - winpr_InitOnceExecuteOnce
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:895,7'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/thread/thread.c:895,7'
          Dst:             initializeThreads
        - Src:             'winpr/libwinpr/thread/thread.c:897,22'
          Dst:             pthread_self
        - Src:             'winpr/libwinpr/thread/thread.c:900,8'
          Dst:             pthread_getspecific
    - functionName:    initializeThreads
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 437
      functionLinenumberEnd: 468
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          50
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
        - apc_init
        - pthread_key_create
        - pthread_self
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:438,7'
          Dst:             apc_init
        - Src:             'winpr/libwinpr/thread/thread.c:440,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/thread/thread.c:445,17'
          Dst:             pthread_self
        - Src:             'winpr/libwinpr/thread/thread.c:447,18'
          Dst:             pthread_key_create
        - Src:             'winpr/libwinpr/thread/thread.c:450,3'
          Dst:             WLog_Print_dbg_tag
    - 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_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:    GetExitCodeThread
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 874
      functionLinenumberEnd: 889
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          58
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - SetLastError
        - WLog_Print_dbg_tag
        - winpr_Handle_GetInfo
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:879,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/thread/thread.c:881,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/thread/thread.c:882,3'
          Dst:             SetLastError
    - functionName:    ExitThread
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 827
      functionLinenumberEnd: 871
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          7
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    CreateRemoteThread
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 820
      functionLinenumberEnd: 823
      functionDepth:   0
      returnType:      'N/A'
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - SetLastError
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:821,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/thread/thread.c:822,2'
          Dst:             SetLastError
    - functionName:    WINPR_HANDLE_SET_TYPE_AND_MODE
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/../handle/handle.h'
      linkageType:     InternalLinkage
      functionLinenumber: 142
      functionLinenumberEnd: 148
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          24
      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: 220
      functionLinenumberEnd: 230
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          57
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - pthread_cond_init
        - pthread_mutex_init
        - run_cond_init_
        - run_mutex_init_
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:221,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/thread.c:224,7'
          Dst:             run_mutex_init_
        - Src:             'winpr/libwinpr/thread/thread.c:224,7'
          Dst:             pthread_mutex_init
        - Src:             'winpr/libwinpr/thread/thread.c:227,7'
          Dst:             run_cond_init_
        - Src:             'winpr/libwinpr/thread/thread.c:227,7'
          Dst:             pthread_cond_init
    - functionName:    run_mutex_init_
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 143
      functionLinenumberEnd: 155
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          75
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_int_assert
        - winpr_strerror
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:146,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/thread.c:147,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/thread/thread.c:153,3'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/thread/thread.c:153,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: 680
      functionLinenumberEnd: 741
      functionDepth:   0
      returnType:      'N/A'
      argCount:        6
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          161
      EdgeCount:       36
      CyclomaticComplexity: 12
      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:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:682,40'
          Dst:             calloc
        - Src:             'winpr/libwinpr/thread/thread.c:697,7'
          Dst:             winpr_event_init
        - Src:             'winpr/libwinpr/thread/thread.c:699,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/thread/thread.c:703,7'
          Dst:             run_mutex_init_
        - Src:             'winpr/libwinpr/thread/thread.c:703,7'
          Dst:             pthread_mutex_init
        - Src:             'winpr/libwinpr/thread/thread.c:705,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/thread/thread.c:709,7'
          Dst:             apc_init
        - Src:             'winpr/libwinpr/thread/thread.c:711,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/thread/thread.c:715,7'
          Dst:             mux_condition_bundle_init
        - Src:             'winpr/libwinpr/thread/thread.c:717,7'
          Dst:             mux_condition_bundle_init
        - Src:             'winpr/libwinpr/thread/thread.c:720,2'
          Dst:             WINPR_HANDLE_SET_TYPE_AND_MODE
        - Src:             'winpr/libwinpr/thread/thread.c:723,7'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/thread/thread.c:723,7'
          Dst:             initializeThreads
        - Src:             'winpr/libwinpr/thread/thread.c:728,8'
          Dst:             winpr_StartThread
        - Src:             'winpr/libwinpr/thread/thread.c:733,8'
          Dst:             set_event
        - Src:             'winpr/libwinpr/thread/thread.c:739,2'
          Dst:             cleanup_handle
    - functionName:    SetThreadPriority
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 621
      functionLinenumberEnd: 675
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          135
      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:635,2'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:625,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/thread/thread.c:662,17'
          Dst:             pthread_setschedprio
        - Src:             'winpr/libwinpr/thread/thread.c:666,3'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/thread/thread.c:666,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:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 323
      functionLinenumberEnd: 335
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          65
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintTextMessageVA
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:326,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:328,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:332,4'
          Dst:             WLog_PrintTextMessageVA
    - functionName:    CREDSSP_init
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/CredSSP/credssp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 332
      functionLinenumberEnd: 337
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - InitializeConstWCharFromUtf8
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/CredSSP/credssp.c:333,2'
          Dst:             InitializeConstWCharFromUtf8
        - Src:             'winpr/libwinpr/sspi/CredSSP/credssp.c:335,2'
          Dst:             InitializeConstWCharFromUtf8
    - functionName:    credssp_InitializeSecurityContextW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/CredSSP/credssp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 43
      functionDepth:   0
      returnType:      int
      argCount:        12
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
        - int
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          36
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/CredSSP/credssp.c:42,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    credssp_AcquireCredentialsHandleW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/CredSSP/credssp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 128
      functionLinenumberEnd: 130
      functionDepth:   0
      returnType:      int
      argCount:        9
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/CredSSP/credssp.c:129,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    credssp_QueryCredentialsAttributesW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/CredSSP/credssp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 171
      functionLinenumberEnd: 173
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/CredSSP/credssp.c:172,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    credssp_DecryptMessage
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/CredSSP/credssp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 223
      functionLinenumberEnd: 225
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/CredSSP/credssp.c:224,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    credssp_EncryptMessage
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/CredSSP/credssp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 214
      functionLinenumberEnd: 216
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/CredSSP/credssp.c:215,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    credssp_VerifySignature
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/CredSSP/credssp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 241
      functionLinenumberEnd: 243
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/CredSSP/credssp.c:242,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    credssp_MakeSignature
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/CredSSP/credssp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 232
      functionLinenumberEnd: 234
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/CredSSP/credssp.c:233,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    credssp_QueryContextAttributes
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/CredSSP/credssp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 111
      functionLinenumberEnd: 120
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          41
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/CredSSP/credssp.c:118,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    credssp_InitializeSecurityContextA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/CredSSP/credssp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 53
      functionLinenumberEnd: 90
      functionDepth:   0
      returnType:      int
      argCount:        12
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
        - int
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          121
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - credssp_ContextFree
        - credssp_ContextNew
        - sspi_SecureHandleGetLowerPointer
        - sspi_SecureHandleSetLowerPointer
        - sspi_SecureHandleSetUpperPointer
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/CredSSP/credssp.c:61,30'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/CredSSP/credssp.c:70,13'
          Dst:             credssp_ContextNew
        - Src:             'winpr/libwinpr/sspi/CredSSP/credssp.c:75,36'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/CredSSP/credssp.c:79,4'
          Dst:             credssp_ContextFree
        - Src:             'winpr/libwinpr/sspi/CredSSP/credssp.c:83,3'
          Dst:             sspi_SecureHandleSetLowerPointer
        - Src:             'winpr/libwinpr/sspi/CredSSP/credssp.c:86,3'
          Dst:             sspi_SecureHandleSetUpperPointer
    - functionName:    credssp_ContextNew
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/CredSSP/credssp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 93
      functionLinenumberEnd: 101
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - calloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/CredSSP/credssp.c:95,30'
          Dst:             calloc
    - functionName:    credssp_ContextFree
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/CredSSP/credssp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 104
      functionLinenumberEnd: 106
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    credssp_FreeCredentialsHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/CredSSP/credssp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 196
      functionLinenumberEnd: 208
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          44
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - sspi_CredentialsFree
        - sspi_SecureHandleGetLowerPointer
        - sspi_SecureHandleInvalidate
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/CredSSP/credssp.c:201,25'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/CredSSP/credssp.c:202,2'
          Dst:             sspi_SecureHandleInvalidate
        - Src:             'winpr/libwinpr/sspi/CredSSP/credssp.c:206,2'
          Dst:             sspi_CredentialsFree
    - functionName:    credssp_AcquireCredentialsHandleA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/CredSSP/credssp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 139
      functionLinenumberEnd: 166
      functionDepth:   0
      returnType:      int
      argCount:        9
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          75
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
        - sspi_CredentialsNew
        - sspi_SecureHandleSetLowerPointer
        - sspi_SecureHandleSetUpperPointer
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/CredSSP/credssp.c:150,17'
          Dst:             sspi_CredentialsNew
        - Src:             'winpr/libwinpr/sspi/CredSSP/credssp.c:157,3'
          Dst:             sspi_SecureHandleSetLowerPointer
        - Src:             'winpr/libwinpr/sspi/CredSSP/credssp.c:160,3'
          Dst:             sspi_SecureHandleSetUpperPointer
        - Src:             'winpr/libwinpr/sspi/CredSSP/credssp.c:164,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    credssp_QueryCredentialsAttributesA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/CredSSP/credssp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 179
      functionLinenumberEnd: 193
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          46
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
        - sspi_SecureHandleGetLowerPointer
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/CredSSP/credssp.c:183,26'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/CredSSP/credssp.c:191,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    ntml_setUnicodeStringW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1419
      functionLinenumberEnd: 1426
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          61
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - ntlm_free_unicode_string
        - ntlm_from_unicode_string_w
        - ntlm_is_unicode_string_empty
        - winpr_int_assert
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1420,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1421,2'
          Dst:             ntlm_free_unicode_string
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1422,9'
          Dst:             ntlm_from_unicode_string_w
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1423,6'
          Dst:             ntlm_is_unicode_string_empty
    - functionName:    utf16len
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1430
      functionLinenumberEnd: 1435
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          51
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1431,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1432,2'
          Dst:             winpr_int_assert
    - functionName:    ntlm_SetContextServicePrincipalNameW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 186
      functionLinenumberEnd: 199
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          73
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - _wcslen
        - ntlm_free_unicode_string
        - ntlm_from_unicode_string_w
        - ntlm_is_unicode_string_empty
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:187,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:189,2'
          Dst:             ntlm_free_unicode_string
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:193,21'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:194,34'
          Dst:             ntlm_from_unicode_string_w
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:195,6'
          Dst:             ntlm_is_unicode_string_empty
    - functionName:    ntlm_SetContextAttributesCommon
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1307
      functionLinenumberEnd: 1415
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         50
      ICount:          336
      EdgeCount:       66
      CyclomaticComplexity: 18
      functionsReached:
        - WLog_Print_dbg_tag
        - ntlm_SecBufferRealloc
        - sspi_SecureHandleGetLowerPointer
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/sspi/NTLM/ntlm.c:1318,2'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1314,41'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1345,10'
          Dst:             ntlm_SecBufferRealloc
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1353,10'
          Dst:             ntlm_SecBufferRealloc
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1361,10'
          Dst:             ntlm_SecBufferRealloc
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1412,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    ntlm_SecBufferRealloc
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2099
      functionLinenumberEnd: 2101
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sspi_SecBufferAlloc
        - sspi_SecBufferFree
      functionUses:    13
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:2100,2'
          Dst:             sspi_SecBufferFree
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:2101,9'
          Dst:             sspi_SecBufferAlloc
    - functionName:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 323
      functionLinenumberEnd: 335
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          65
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintTextMessageVA
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:326,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:328,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:332,4'
          Dst:             WLog_PrintTextMessageVA
    - 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:
        - ''
        - ''
      BBCount:         9
      ICount:          48
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      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:
        - ''
        - ''
      BBCount:         9
      ICount:          45
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_Data_Write_UINT16
        - winpr_int_assert
      functionUses:    12
      BranchProfiles:  []
      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:    identityToAuthIdentity
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1015
      functionLinenumberEnd: 1059
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         40
      ICount:          226
      EdgeCount:       51
      CyclomaticComplexity: 13
      functionsReached:
        - ConvertWCharNToUtf8
        - strncpy
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1016,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1028,8'
          Dst:             ConvertWCharNToUtf8
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1035,8'
          Dst:             ConvertWCharNToUtf8
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1045,4'
          Dst:             strncpy
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1052,4'
          Dst:             strncpy
    - functionName:    ntlm_QueryContextAttributesCommon
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1064
      functionLinenumberEnd: 1131
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          182
      EdgeCount:       31
      CyclomaticComplexity: 8
      functionsReached:
        - WLog_Print_dbg_tag
        - check_context_
        - identityToAuthIdentity
        - ntlm_computeMicValue
        - ntlm_computeProofValue
        - sspi_SecBufferAlloc
        - sspi_SecureHandleGetLowerPointer
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/sspi/NTLM/ntlm.c:1075,2'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1071,41'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1072,7'
          Dst:             check_context_
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1083,9'
          Dst:             identityToAuthIdentity
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1099,11'
          Dst:             ntlm_computeProofValue
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1105,9'
          Dst:             sspi_SecBufferAlloc
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1117,9'
          Dst:             sspi_SecBufferAlloc
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1125,11'
          Dst:             ntlm_computeMicValue
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1128,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    check_context_
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 54
      functionLinenumberEnd: 109
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         45
      ICount:          228
      EdgeCount:       59
      CyclomaticComplexity: 16
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:56,14'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:61,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:62,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:69,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:70,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:75,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:76,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:82,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:83,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:89,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:90,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:96,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:97,4'
          Dst:             WLog_PrintTextMessage
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:103,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:104,4'
          Dst:             WLog_PrintTextMessage
    - functionName:    ntlm_computeProofValue
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 962
      functionLinenumberEnd: 985
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          103
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - sspi_SecBufferAlloc
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:966,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:967,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:971,7'
          Dst:             sspi_SecBufferAlloc
    - functionName:    ntlm_computeMicValue
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 988
      functionLinenumberEnd: 1010
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          136
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - sspi_SecBufferAlloc
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:992,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:993,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:998,7'
          Dst:             sspi_SecBufferAlloc
    - functionName:    utf8str
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1222
      functionLinenumberEnd: 1236
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          93
      EdgeCount:       22
      CyclomaticComplexity: 4
      functionsReached:
        - ConvertWCharNToUtf8
        - utf8len
        - winpr_int_assert
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1223,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1224,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1227,33'
          Dst:             utf8len
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1234,21'
          Dst:             ConvertWCharNToUtf8
    - functionName:    utf8len
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1208
      functionLinenumberEnd: 1218
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         39
      ICount:          146
      EdgeCount:       43
      CyclomaticComplexity: 6
      functionsReached:
        - ConvertWCharNToUtf8
        - winpr_int_assert
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1209,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1210,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1213,21'
          Dst:             ConvertWCharNToUtf8
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1216,9'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1216,9'
          Dst:             winpr_int_assert
    - functionName:    ntlm_try_set_from_registry
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 328
      functionLinenumberEnd: 364
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         78
      ICount:          299
      EdgeCount:       90
      CyclomaticComplexity: 14
      functionsReached:
        - ConvertUtf8ToWChar
        - RegQueryValueExW
        - calloc
        - ntlm_free_unicode_string
        - winpr_int_assert
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:329,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:330,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:335,22'
          Dst:             ConvertUtf8ToWChar
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:338,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:342,6'
          Dst:             RegQueryValueExW
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:348,15'
          Dst:             calloc
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:351,15'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:351,15'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:352,22'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:352,22'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:354,18'
          Dst:             RegQueryValueExW
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:357,2'
          Dst:             ntlm_free_unicode_string
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:362,2'
          Dst:             ntlm_free_unicode_string
    - functionName:    get_computer_name
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 113
      functionLinenumberEnd: 139
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          95
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - GetComputerNameExA
        - GetLastError
        - calloc
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:119,6'
          Dst:             GetComputerNameExA
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:122,6'
          Dst:             GetLastError
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:125,23'
          Dst:             calloc
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:130,7'
          Dst:             GetComputerNameExA
    - functionName:    ntlm_get_target_computer_name
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 288
      functionLinenumberEnd: 303
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          71
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - CharUpperA
        - get_computer_name
        - ntlm_free_unicode_string
        - ntlm_from_unicode_string_utf8
        - ntlm_is_unicode_string_empty
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:289,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:290,2'
          Dst:             ntlm_free_unicode_string
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:293,15'
          Dst:             get_computer_name
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:297,2'
          Dst:             CharUpperA
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:299,11'
          Dst:             ntlm_from_unicode_string_utf8
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:302,10'
          Dst:             ntlm_is_unicode_string_empty
    - functionName:    ntlm_SetContextWorkstation
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 165
      functionLinenumberEnd: 182
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          64
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - get_computer_name
        - ntlm_SetContextWorkstationX
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:171,18'
          Dst:             get_computer_name
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:177,21'
          Dst:             strlen
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:178,33'
          Dst:             ntlm_SetContextWorkstationX
    - functionName:    ntlm_SetContextWorkstationX
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 144
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          112
      EdgeCount:       26
      CyclomaticComplexity: 5
      functionsReached:
        - ntlm_free_unicode_string
        - ntlm_from_unicode_string_utf8
        - ntlm_from_unicode_string_w
        - ntlm_is_unicode_string_empty
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:145,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:146,2'
          Dst:             ntlm_free_unicode_string
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:151,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:153,26'
          Dst:             ntlm_from_unicode_string_w
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:155,26'
          Dst:             ntlm_from_unicode_string_utf8
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:157,6'
          Dst:             ntlm_is_unicode_string_empty
    - functionName:    ntlm_ContextFree
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 250
      functionLinenumberEnd: 283
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          110
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ntlm_free_messages
        - ntlm_free_unicode_string
        - sspi_SecBufferFree
        - winpr_RC4_Free
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:254,2'
          Dst:             winpr_RC4_Free
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:255,2'
          Dst:             winpr_RC4_Free
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:256,2'
          Dst:             sspi_SecBufferFree
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:257,2'
          Dst:             sspi_SecBufferFree
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:258,2'
          Dst:             sspi_SecBufferFree
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:259,2'
          Dst:             sspi_SecBufferFree
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:260,2'
          Dst:             sspi_SecBufferFree
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:261,2'
          Dst:             sspi_SecBufferFree
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:262,2'
          Dst:             sspi_SecBufferFree
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:263,2'
          Dst:             sspi_SecBufferFree
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:264,2'
          Dst:             ntlm_free_unicode_string
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:265,2'
          Dst:             ntlm_free_unicode_string
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:266,2'
          Dst:             ntlm_free_unicode_string
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:267,2'
          Dst:             ntlm_free_unicode_string
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:268,2'
          Dst:             ntlm_free_unicode_string
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:269,2'
          Dst:             ntlm_free_unicode_string
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:271,2'
          Dst:             ntlm_free_messages
    - functionName:    ntlm_ContextFromConfig
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 368
      functionLinenumberEnd: 441
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         36
      ICount:          232
      EdgeCount:       45
      CyclomaticComplexity: 11
      functionsReached:
        - RegCloseKey
        - RegOpenKeyExA
        - RegQueryValueExA
        - ntlm_try_set_from_registry
        - winpr_getApplicatonDetailsRegKey
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:370,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:372,15'
          Dst:             winpr_getApplicatonDetailsRegKey
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:378,8'
          Dst:             RegOpenKeyExA
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:387,9'
          Dst:             RegQueryValueExA
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:391,9'
          Dst:             RegQueryValueExA
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:395,9'
          Dst:             RegQueryValueExA
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:399,9'
          Dst:             RegQueryValueExA
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:403,9'
          Dst:             RegQueryValueExA
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:407,11'
          Dst:             ntlm_try_set_from_registry
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:408,11'
          Dst:             ntlm_try_set_from_registry
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:409,11'
          Dst:             ntlm_try_set_from_registry
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:410,11'
          Dst:             ntlm_try_set_from_registry
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:411,11'
          Dst:             ntlm_try_set_from_registry
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:414,5'
          Dst:             RegCloseKey
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:421,6'
          Dst:             RegOpenKeyExA
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:429,7'
          Dst:             RegQueryValueExA
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:433,3'
          Dst:             RegCloseKey
    - functionName:    ntlm_ContextFillDefaultNames
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 307
      functionLinenumberEnd: 325
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          86
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - ntlm_SetContextWorkstation
        - ntlm_get_target_computer_name
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:308,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:310,6'
          Dst:             ntlm_SetContextWorkstation
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:313,6'
          Dst:             ntlm_get_target_computer_name
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:316,6'
          Dst:             ntlm_get_target_computer_name
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:319,6'
          Dst:             ntlm_get_target_computer_name
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:322,6'
          Dst:             ntlm_get_target_computer_name
    - functionName:    ntlm_SetContextTargetName
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 203
      functionLinenumberEnd: 247
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         31
      ICount:          159
      EdgeCount:       39
      CyclomaticComplexity: 10
      functionsReached:
        - CharUpperA
        - ConvertUtf8ToWCharAlloc
        - get_computer_name
        - sspi_SecBufferFree
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:205,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:210,24'
          Dst:             get_computer_name
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:223,3'
          Dst:             CharUpperA
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:227,2'
          Dst:             sspi_SecBufferFree
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:228,33'
          Dst:             ConvertUtf8ToWCharAlloc
    - functionName:    ntml_setUnicodeStringA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1482
      functionLinenumberEnd: 1489
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          60
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - ntlm_free_unicode_string
        - ntlm_from_unicode_string_utf8
        - ntlm_is_unicode_string_empty
        - winpr_int_assert
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1483,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1484,2'
          Dst:             ntlm_free_unicode_string
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1485,9'
          Dst:             ntlm_from_unicode_string_utf8
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1486,6'
          Dst:             ntlm_is_unicode_string_empty
    - functionName:    ntlm_ContextNew
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 446
      functionLinenumberEnd: 478
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         14
      ICount:          102
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - calloc
        - ntlm_ContextFillDefaultNames
        - ntlm_ContextFree
        - ntlm_ContextFromConfig
        - ntlm_change_state
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:447,41'
          Dst:             calloc
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:462,2'
          Dst:             ntlm_change_state
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:468,7'
          Dst:             ntlm_ContextFillDefaultNames
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:470,7'
          Dst:             ntlm_ContextFromConfig
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:476,2'
          Dst:             ntlm_ContextFree
    - functionName:    ntlm_change_state
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2046
      functionLinenumberEnd: 2051
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          41
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
        - ntlm_state_string
        - winpr_int_assert
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:2047,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:2048,2'
          Dst:             ntlm_state_string
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:2048,2'
          Dst:             ntlm_state_string
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:2048,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    ntlm_state_string
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2028
      functionLinenumberEnd: 2044
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          42
      EdgeCount:       14
      CyclomaticComplexity: 8
      functionsReached: []
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/sspi/NTLM/ntlm.c:2029,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    NTLM_init
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2089
      functionLinenumberEnd: 2095
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - InitializeConstWCharFromUtf8
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:2090,2'
          Dst:             InitializeConstWCharFromUtf8
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:2092,2'
          Dst:             InitializeConstWCharFromUtf8
    - functionName:    ntlm_reset_cipher_state
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2060
      functionLinenumberEnd: 2086
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          86
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - WLog_Print_dbg_tag
        - check_context_
        - sspi_SecureHandleGetLowerPointer
        - winpr_RC4_Free
        - winpr_RC4_New
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:2061,26'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:2065,8'
          Dst:             check_context_
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:2068,3'
          Dst:             winpr_RC4_Free
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:2069,3'
          Dst:             winpr_RC4_Free
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:2070,26'
          Dst:             winpr_RC4_New
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:2071,26'
          Dst:             winpr_RC4_New
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:2075,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:2080,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    ntlm_get_state
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2054
      functionLinenumberEnd: 2056
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          31
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:2055,2'
          Dst:             winpr_int_assert
    - functionName:    ntlm_message_type_string
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2013
      functionLinenumberEnd: 2025
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          32
      EdgeCount:       10
      CyclomaticComplexity: 6
      functionsReached: []
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/sspi/NTLM/ntlm.c:2014,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    ntlm_negotiate_flags_string
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1980
      functionLinenumberEnd: 2010
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          150
      EdgeCount:       34
      CyclomaticComplexity: 10
      functionsReached:
        - ntlm_get_negotiate_string
        - snprintf
        - strlen
        - strnlen
        - winpr_str_append
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1984,8'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1989,16'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1992,22'
          Dst:             ntlm_get_negotiate_string
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1993,24'
          Dst:             strlen
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1999,5'
          Dst:             winpr_str_append
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:2005,4'
          Dst:             winpr_str_append
    - functionName:    ntlm_SetCredentialsAttributesW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1527
      functionLinenumberEnd: 1528
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ntlm_SetContextAttributesW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1442
      functionLinenumberEnd: 1479
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          163
      EdgeCount:       23
      CyclomaticComplexity: 4
      functionsReached:
        - ntlm_SetContextAttributesCommon
        - ntml_setUnicodeStringW
        - sspi_SecureHandleGetLowerPointer
        - utf16len
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/sspi/NTLM/ntlm.c:1453,2'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1449,41'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1456,11'
          Dst:             utf16len
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1458,11'
          Dst:             utf16len
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1460,11'
          Dst:             utf16len
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1462,11'
          Dst:             utf16len
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1464,11'
          Dst:             utf16len
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1466,11'
          Dst:             ntml_setUnicodeStringW
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1468,11'
          Dst:             ntml_setUnicodeStringW
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1470,11'
          Dst:             ntml_setUnicodeStringW
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1472,11'
          Dst:             ntml_setUnicodeStringW
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1474,11'
          Dst:             ntml_setUnicodeStringW
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1477,11'
          Dst:             ntlm_SetContextAttributesCommon
    - functionName:    ntlm_QueryContextAttributesW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1137
      functionLinenumberEnd: 1204
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          212
      EdgeCount:       29
      CyclomaticComplexity: 7
      functionsReached:
        - _wcsdup
        - check_context_
        - ntlm_QueryContextAttributesCommon
        - sspi_ContextBufferAlloc
        - sspi_ContextBufferFree
        - sspi_SecureHandleGetLowerPointer
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/sspi/NTLM/ntlm.c:1148,2'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1144,41'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1145,7'
          Dst:             check_context_
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1181,22'
          Dst:             sspi_ContextBufferAlloc
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1190,25'
          Dst:             _wcsdup
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1191,28'
          Dst:             _wcsdup
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1195,5'
          Dst:             sspi_ContextBufferFree
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1202,11'
          Dst:             ntlm_QueryContextAttributesCommon
    - functionName:    ntlm_InitializeSecurityContextW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 814
      functionLinenumberEnd: 923
      functionDepth:   0
      returnType:      int
      argCount:        12
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
        - int
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         64
      ICount:          378
      EdgeCount:       90
      CyclomaticComplexity: 28
      functionsReached:
        - ntlm_ContextFree
        - ntlm_ContextNew
        - ntlm_SetContextServicePrincipalNameW
        - ntlm_change_state
        - ntlm_get_state
        - ntlm_read_ChallengeMessage
        - ntlm_write_AuthenticateMessage
        - ntlm_write_NegotiateMessage
        - sspi_FindSecBuffer
        - sspi_SecureHandleGetLowerPointer
        - sspi_SecureHandleSetLowerPointer
        - sspi_SecureHandleSetPackageId
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:824,41'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:828,18'
          Dst:             sspi_FindSecBuffer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:833,13'
          Dst:             ntlm_ContextNew
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:841,36'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:844,7'
          Dst:             ntlm_SetContextServicePrincipalNameW
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:846,4'
          Dst:             ntlm_ContextFree
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:850,3'
          Dst:             sspi_SecureHandleSetLowerPointer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:851,3'
          Dst:             sspi_SecureHandleSetPackageId
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:854,26'
          Dst:             ntlm_get_state
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:862,19'
          Dst:             sspi_FindSecBuffer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:870,7'
          Dst:             ntlm_get_state
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:871,4'
          Dst:             ntlm_change_state
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:873,7'
          Dst:             ntlm_get_state
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:874,11'
          Dst:             ntlm_write_NegotiateMessage
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:886,33'
          Dst:             sspi_FindSecBuffer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:894,7'
          Dst:             ntlm_get_state
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:896,13'
          Dst:             ntlm_read_ChallengeMessage
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:907,20'
          Dst:             sspi_FindSecBuffer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:915,8'
          Dst:             ntlm_get_state
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:916,12'
          Dst:             ntlm_write_AuthenticateMessage
    - functionName:    ntlm_AcquireCredentialsHandleW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 486
      functionLinenumberEnd: 564
      functionDepth:   0
      returnType:      int
      argCount:        9
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         45
      ICount:          267
      EdgeCount:       59
      CyclomaticComplexity: 16
      functionsReached:
        - sspi_CloneSecNtlmSettings
        - sspi_CloneSecSettingsString
        - sspi_CopyAuthIdentity
        - sspi_CredentialsFree
        - sspi_CredentialsNew
        - sspi_FreeSecNtlmSettings
        - sspi_GetAuthIdentityFlags
        - sspi_SecureHandleSetLowerPointer
        - sspi_SecureHandleSetPackageId
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:493,34'
          Dst:             sspi_CredentialsNew
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:508,26'
          Dst:             sspi_GetAuthIdentityFlags
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:510,7'
          Dst:             sspi_CopyAuthIdentity
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:513,4'
          Dst:             sspi_CredentialsFree
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:526,4'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:538,9'
          Dst:             sspi_CloneSecSettingsString
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:541,5'
          Dst:             sspi_CredentialsFree
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:552,3'
          Dst:             sspi_FreeSecNtlmSettings
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:553,33'
          Dst:             sspi_CloneSecNtlmSettings
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:556,4'
          Dst:             sspi_CredentialsFree
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:561,2'
          Dst:             sspi_SecureHandleSetLowerPointer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:562,2'
          Dst:             sspi_SecureHandleSetPackageId
    - functionName:    ntlm_QueryCredentialsAttributesW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 620
      functionLinenumberEnd: 628
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:626,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    ntlm_SetCredentialsAttributesA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1535
      functionLinenumberEnd: 1536
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ntlm_SetContextAttributesA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1495
      functionLinenumberEnd: 1521
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          118
      EdgeCount:       18
      CyclomaticComplexity: 4
      functionsReached:
        - ntlm_SetContextAttributesCommon
        - ntml_setUnicodeStringA
        - sspi_SecureHandleGetLowerPointer
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/sspi/NTLM/ntlm.c:1506,2'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1502,41'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1509,11'
          Dst:             ntml_setUnicodeStringA
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1511,11'
          Dst:             ntml_setUnicodeStringA
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1513,11'
          Dst:             ntml_setUnicodeStringA
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1515,11'
          Dst:             ntml_setUnicodeStringA
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1517,11'
          Dst:             ntml_setUnicodeStringA
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1519,11'
          Dst:             ntlm_SetContextAttributesCommon
    - functionName:    ntlm_DecryptMessage
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1663
      functionLinenumberEnd: 1777
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         46
      ICount:          340
      EdgeCount:       64
      CyclomaticComplexity: 20
      functionsReached:
        - WLog_Print_dbg_tag
        - check_context_
        - memcmp
        - sspi_SecureHandleGetLowerPointer
        - winpr_Data_Write_UINT32
        - winpr_HMAC_Final
        - winpr_HMAC_Free
        - winpr_HMAC_Init
        - winpr_HMAC_New
        - winpr_HMAC_Update
        - winpr_RC4_Update
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1672,41'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1673,7'
          Dst:             check_context_
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1706,8'
          Dst:             winpr_RC4_Update
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1717,25'
          Dst:             winpr_HMAC_New
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1724,8'
          Dst:             winpr_HMAC_Init
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1727,3'
          Dst:             winpr_Data_Write_UINT32
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1729,8'
          Dst:             winpr_HMAC_Update
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1731,8'
          Dst:             winpr_HMAC_Update
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1733,8'
          Dst:             winpr_HMAC_Final
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1739,2'
          Dst:             winpr_HMAC_Free
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1754,7'
          Dst:             winpr_RC4_Update
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1758,2'
          Dst:             winpr_Data_Write_UINT32
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1760,2'
          Dst:             winpr_Data_Write_UINT32
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1763,6'
          Dst:             memcmp
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1766,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    ntlm_EncryptMessage
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1549
      functionLinenumberEnd: 1658
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         50
      ICount:          341
      EdgeCount:       69
      CyclomaticComplexity: 21
      functionsReached:
        - check_context_
        - sspi_SecureHandleGetLowerPointer
        - winpr_Data_Write_UINT32
        - winpr_HMAC_Final
        - winpr_HMAC_Free
        - winpr_HMAC_Init
        - winpr_HMAC_New
        - winpr_HMAC_Update
        - winpr_RC4_Update
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1557,41'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1558,7'
          Dst:             check_context_
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1589,25'
          Dst:             winpr_HMAC_New
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1595,8'
          Dst:             winpr_HMAC_Init
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1598,3'
          Dst:             winpr_Data_Write_UINT32
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1600,8'
          Dst:             winpr_HMAC_Update
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1602,8'
          Dst:             winpr_HMAC_Update
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1604,8'
          Dst:             winpr_HMAC_Final
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1611,2'
          Dst:             winpr_HMAC_Free
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1623,9'
          Dst:             winpr_RC4_Update
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1642,7'
          Dst:             winpr_RC4_Update
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1648,3'
          Dst:             winpr_Data_Write_UINT32
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1650,3'
          Dst:             winpr_Data_Write_UINT32
    - functionName:    ntlm_VerifySignature
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1841
      functionLinenumberEnd: 1892
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         37
      ICount:          239
      EdgeCount:       50
      CyclomaticComplexity: 15
      functionsReached:
        - check_context_
        - memcmp
        - sspi_SecureHandleGetLowerPointer
        - winpr_Data_Write_UINT32
        - winpr_HMAC_Final
        - winpr_HMAC_Free
        - winpr_HMAC_Init
        - winpr_HMAC_New
        - winpr_HMAC_Update
        - winpr_RC4_Update
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1850,26'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1851,7'
          Dst:             check_context_
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1865,25'
          Dst:             winpr_HMAC_New
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1867,7'
          Dst:             winpr_HMAC_Init
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1870,2'
          Dst:             winpr_Data_Write_UINT32
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1871,7'
          Dst:             winpr_HMAC_Update
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1873,7'
          Dst:             winpr_HMAC_Update
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1875,7'
          Dst:             winpr_HMAC_Final
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1878,7'
          Dst:             winpr_RC4_Update
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1881,2'
          Dst:             winpr_Data_Write_UINT32
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1883,2'
          Dst:             winpr_Data_Write_UINT32
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1886,6'
          Dst:             memcmp
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1890,2'
          Dst:             winpr_HMAC_Free
    - functionName:    ntlm_MakeSignature
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1782
      functionLinenumberEnd: 1835
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         34
      ICount:          234
      EdgeCount:       46
      CyclomaticComplexity: 14
      functionsReached:
        - check_context_
        - sspi_SecureHandleGetLowerPointer
        - winpr_Data_Write_UINT32
        - winpr_HMAC_Final
        - winpr_HMAC_Free
        - winpr_HMAC_Init
        - winpr_HMAC_New
        - winpr_HMAC_Update
        - winpr_RC4_Update
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1790,26'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1791,7'
          Dst:             check_context_
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1808,25'
          Dst:             winpr_HMAC_New
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1810,7'
          Dst:             winpr_HMAC_Init
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1813,2'
          Dst:             winpr_Data_Write_UINT32
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1814,7'
          Dst:             winpr_HMAC_Update
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1816,7'
          Dst:             winpr_HMAC_Update
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1818,7'
          Dst:             winpr_HMAC_Final
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1821,7'
          Dst:             winpr_RC4_Update
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1825,2'
          Dst:             winpr_Data_Write_UINT32
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1827,2'
          Dst:             winpr_Data_Write_UINT32
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1833,2'
          Dst:             winpr_HMAC_Free
    - functionName:    ntlm_RevertSecurityContext
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1541
      functionLinenumberEnd: 1542
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          6
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ntlm_ImpersonateSecurityContext
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 804
      functionLinenumberEnd: 805
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          6
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ntlm_QueryContextAttributesA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1241
      functionLinenumberEnd: 1301
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          212
      EdgeCount:       31
      CyclomaticComplexity: 6
      functionsReached:
        - _strdup
        - ntlm_QueryContextAttributesCommon
        - sspi_ContextBufferAlloc
        - sspi_ContextBufferFree
        - sspi_SecureHandleGetLowerPointer
        - utf8len
        - utf8str
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/sspi/NTLM/ntlm.c:1250,2'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1248,41'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1253,11'
          Dst:             utf8len
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1255,11'
          Dst:             utf8len
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1257,11'
          Dst:             utf8len
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1259,11'
          Dst:             utf8len
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1261,11'
          Dst:             utf8len
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1263,11'
          Dst:             utf8str
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1265,11'
          Dst:             utf8str
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1267,11'
          Dst:             utf8str
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1269,11'
          Dst:             utf8str
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1271,11'
          Dst:             utf8str
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1277,22'
          Dst:             sspi_ContextBufferAlloc
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1286,25'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1287,28'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1291,5'
          Dst:             sspi_ContextBufferFree
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:1299,11'
          Dst:             ntlm_QueryContextAttributesCommon
    - functionName:    ntlm_DeleteSecurityContext
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 954
      functionLinenumberEnd: 958
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ntlm_ContextFree
        - sspi_SecureHandleGetLowerPointer
        - sspi_SecureHandleInvalidate
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:955,41'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:956,2'
          Dst:             sspi_SecureHandleInvalidate
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:957,2'
          Dst:             ntlm_ContextFree
    - functionName:    ntlm_AcceptSecurityContext
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 648
      functionLinenumberEnd: 799
      functionDepth:   0
      returnType:      int
      argCount:        9
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         79
      ICount:          552
      EdgeCount:       109
      CyclomaticComplexity: 32
      functionsReached:
        - ntlm_ContextNew
        - ntlm_SetContextTargetName
        - ntlm_change_state
        - ntlm_get_state
        - ntlm_read_AuthenticateMessage
        - ntlm_read_NegotiateMessage
        - ntlm_write_ChallengeMessage
        - ntml_setUnicodeStringA
        - sspi_FindSecBuffer
        - sspi_SecureHandleGetLowerPointer
        - sspi_SecureHandleSetLowerPointer
        - sspi_SecureHandleSetPackageId
        - strlen
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/sspi/NTLM/ntlm.c:720,2'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:658,41'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:662,13'
          Dst:             ntlm_ContextNew
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:672,36'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:682,8'
          Dst:             strlen
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:680,31'
          Dst:             ntml_setUnicodeStringA
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:691,8'
          Dst:             strlen
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:689,31'
          Dst:             ntml_setUnicodeStringA
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:700,8'
          Dst:             strlen
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:698,31'
          Dst:             ntml_setUnicodeStringA
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:709,8'
          Dst:             strlen
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:707,31'
          Dst:             ntml_setUnicodeStringA
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:714,8'
          Dst:             ntlm_SetContextTargetName
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:716,3'
          Dst:             sspi_SecureHandleSetLowerPointer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:717,3'
          Dst:             sspi_SecureHandleSetPackageId
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:720,10'
          Dst:             ntlm_get_state
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:724,4'
          Dst:             ntlm_change_state
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:732,19'
          Dst:             sspi_FindSecBuffer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:740,13'
          Dst:             ntlm_read_NegotiateMessage
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:744,8'
          Dst:             ntlm_get_state
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:752,21'
          Dst:             sspi_FindSecBuffer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:760,12'
          Dst:             ntlm_write_ChallengeMessage
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:774,19'
          Dst:             sspi_FindSecBuffer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:782,13'
          Dst:             ntlm_read_AuthenticateMessage
    - functionName:    ntlm_InitializeSecurityContextA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 933
      functionLinenumberEnd: 949
      functionDepth:   0
      returnType:      int
      argCount:        12
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
        - int
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          82
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ConvertUtf8ToWCharAlloc
        - ntlm_InitializeSecurityContextW
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:939,20'
          Dst:             ConvertUtf8ToWCharAlloc
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:944,11'
          Dst:             ntlm_InitializeSecurityContextW
    - functionName:    ntlm_FreeCredentialsHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 602
      functionLinenumberEnd: 614
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          44
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - sspi_CredentialsFree
        - sspi_SecureHandleGetLowerPointer
        - sspi_SecureHandleInvalidate
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:607,25'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:608,2'
          Dst:             sspi_SecureHandleInvalidate
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:612,2'
          Dst:             sspi_CredentialsFree
    - functionName:    ntlm_AcquireCredentialsHandleA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 571
      functionLinenumberEnd: 597
      functionDepth:   0
      returnType:      int
      argCount:        9
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          94
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - ConvertUtf8ToWCharAlloc
        - ntlm_AcquireCredentialsHandleW
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:578,15'
          Dst:             ConvertUtf8ToWCharAlloc
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:584,13'
          Dst:             ConvertUtf8ToWCharAlloc
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:590,6'
          Dst:             ntlm_AcquireCredentialsHandleW
    - functionName:    ntlm_QueryCredentialsAttributesA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 633
      functionLinenumberEnd: 634
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ntlm_QueryCredentialsAttributesW
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm.c:634,9'
          Dst:             ntlm_QueryCredentialsAttributesW
    - functionName:    kerberos_ATTR_PACKAGE_INFO_W
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1895
      functionLinenumberEnd: 1917
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          86
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - _wcsdup
        - sspi_ContextBufferAlloc
        - sspi_ContextBufferFree
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1898,20'
          Dst:             sspi_ContextBufferAlloc
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1907,23'
          Dst:             _wcsdup
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1908,26'
          Dst:             _wcsdup
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1912,3'
          Dst:             sspi_ContextBufferFree
    - functionName:    kerberos_SetCredentialsAttributesX
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2109
      functionLinenumberEnd: 2167
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         33
      ICount:          193
      EdgeCount:       42
      CyclomaticComplexity: 11
      functionsReached:
        - ConvertWCharNToUtf8Alloc
        - WLog_Print_dbg_tag
        - sspi_SecureHandleGetLowerPointer
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/sspi/Kerberos/kerberos.c:2124,2'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2116,16'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2148,28'
          Dst:             ConvertWCharNToUtf8Alloc
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2159,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 323
      functionLinenumberEnd: 335
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          65
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintTextMessageVA
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:326,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:328,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:332,4'
          Dst:             WLog_PrintTextMessageVA
    - functionName:    winpr_Data_Get_UINT64_BE
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/endian.h'
      linkageType:     InternalLinkage
      functionLinenumber: 181
      functionLinenumberEnd: 191
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          62
      EdgeCount:       14
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/endian.h:182,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:
        - ''
      BBCount:         13
      ICount:          66
      EdgeCount:       14
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/endian.h:74,3'
          Dst:             winpr_int_assert
    - 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:
        - ''
        - ''
      BBCount:         9
      ICount:          45
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_Data_Write_UINT16_BE
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      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:
        - ''
        - ''
      BBCount:         9
      ICount:          48
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/endian.h:244,3'
          Dst:             winpr_int_assert
    - functionName:    winpr_Data_Write_UINT64_BE
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/endian.h'
      linkageType:     InternalLinkage
      functionLinenumber: 289
      functionLinenumberEnd: 294
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          45
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_Data_Write_UINT32_BE
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/endian.h:290,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/endian.h:292,3'
          Dst:             winpr_Data_Write_UINT32_BE
        - Src:             'winpr/include/winpr/endian.h:293,3'
          Dst:             winpr_Data_Write_UINT32_BE
    - functionName:    copy_krb5_data
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1689
      functionLinenumberEnd: 1701
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          91
      EdgeCount:       25
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1690,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1691,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1692,2'
          Dst:             winpr_int_assert
    - functionName:    krb5_error_to_SECURITY_STATUS
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1724
      functionLinenumberEnd: 1732
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          22
      EdgeCount:       6
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    5
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/sspi/Kerberos/kerberos.c:1725,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    get_key
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 257
      functionLinenumberEnd: 260
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          40
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    kerberos_ATTR_TICKET_LOGON
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1922
      functionLinenumberEnd: 1991
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          209
      EdgeCount:       27
      CyclomaticComplexity: 7
      functionsReached:
        - WLog_Print_dbg_tag
        - copy_krb5_data
        - kerberos_log_msg
        - krb5_auth_con_free
        - krb5_auth_con_init
        - krb5_cc_get_principal
        - krb5_free_cred_contents
        - krb5_free_creds
        - krb5_free_data
        - krb5_fwd_tgt_creds
        - krb5_get_credentials
        - krb5_sname_to_principal
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/sspi/Kerberos/kerberos.c:1943,2'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1929,11'
          Dst:             krb5_sname_to_principal
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1929,11'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1934,7'
          Dst:             krb5_cc_get_principal
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1934,7'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1941,7'
          Dst:             krb5_get_credentials
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1941,7'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1956,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1960,6'
          Dst:             krb5_auth_con_init
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1960,6'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1965,7'
          Dst:             krb5_fwd_tgt_creds
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1965,7'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1975,8'
          Dst:             copy_krb5_data
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1978,4'
          Dst:             krb5_free_data
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1988,2'
          Dst:             krb5_auth_con_free
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1989,2'
          Dst:             krb5_free_creds
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1990,2'
          Dst:             krb5_free_cred_contents
    - functionName:    krb5_sname_to_principal
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    kerberos_log_msg
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 132
      functionLinenumberEnd: 152
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          72
      EdgeCount:       11
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - krb5_free_error_message
        - krb5_get_error_message
      functionUses:    75
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/sspi/Kerberos/kerberos.c:133,2'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:142,16'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:143,8'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:145,23'
          Dst:             krb5_get_error_message
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:146,5'
          Dst:             WLog_PrintTextMessage
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:147,5'
          Dst:             krb5_free_error_message
    - functionName:    krb5_cc_get_principal
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    krb5_get_credentials
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    krb5_auth_con_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:    krb5_fwd_tgt_creds
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    krb5_free_data
      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:    krb5_auth_con_free
      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:    krb5_free_creds
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    krb5_free_cred_contents
      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:    krb5_get_error_message
      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:    krb5_free_error_message
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    kerberos_ATTR_AUTH_IDENTITY
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1793
      functionLinenumberEnd: 1862
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         41
      ICount:          207
      EdgeCount:       47
      CyclomaticComplexity: 8
      functionsReached:
        - kerberos_log_msg
        - krb5_auth_con_getauthenticator
        - krb5_error_to_SECURITY_STATUS
        - krb5_free_authenticator
        - krb5_free_unparsed_name
        - krb5_unparse_name_flags
        - strlen
        - strncpy
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1796,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1797,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1798,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1800,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1804,23'
          Dst:             krb5_auth_con_getauthenticator
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1804,23'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1829,3'
          Dst:             strncpy
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1841,8'
          Dst:             krb5_unparse_name_flags
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1841,8'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1846,30'
          Dst:             strlen
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1851,4'
          Dst:             strncpy
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1856,3'
          Dst:             krb5_free_unparsed_name
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1861,2'
          Dst:             krb5_free_authenticator
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1862,9'
          Dst:             krb5_error_to_SECURITY_STATUS
    - functionName:    krb5_auth_con_getauthenticator
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    krb5_unparse_name_flags
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    krb5_free_unparsed_name
      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:    krb5_free_authenticator
      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:    kerberos_ATTR_SIZES
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1736
      functionLinenumberEnd: 1788
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          219
      EdgeCount:       36
      CyclomaticComplexity: 8
      functionsReached:
        - get_key
        - kerberos_log_msg
        - krb5_c_crypto_length
        - krb5_error_to_SECURITY_STATUS
        - krb5_k_key_enctype
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1742,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1743,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1754,8'
          Dst:             get_key
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1758,24'
          Dst:             krb5_k_key_enctype
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1758,24'
          Dst:             krb5_c_crypto_length
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1758,24'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1761,11'
          Dst:             krb5_error_to_SECURITY_STATUS
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1763,8'
          Dst:             krb5_k_key_enctype
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1763,8'
          Dst:             krb5_c_crypto_length
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1763,8'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1766,11'
          Dst:             krb5_error_to_SECURITY_STATUS
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1768,8'
          Dst:             krb5_k_key_enctype
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1768,8'
          Dst:             krb5_c_crypto_length
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1768,8'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1771,11'
          Dst:             krb5_error_to_SECURITY_STATUS
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1779,24'
          Dst:             krb5_k_key_enctype
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1779,24'
          Dst:             krb5_c_crypto_length
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1779,24'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1782,11'
          Dst:             krb5_error_to_SECURITY_STATUS
    - functionName:    krb5_k_key_enctype
      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:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    krb5_c_crypto_length
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    kerberos_QueryContextAttributesCommon
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1999
      functionLinenumberEnd: 2033
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          90
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
        - get_context
        - kerberos_ATTR_AUTH_IDENTITY
        - kerberos_ATTR_SIZES
        - kerberos_ATTR_TICKET_LOGON
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/sspi/Kerberos/kerberos.c:2013,2'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2007,25'
          Dst:             get_context
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2016,11'
          Dst:             kerberos_ATTR_SIZES
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2019,11'
          Dst:             kerberos_ATTR_AUTH_IDENTITY
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2023,11'
          Dst:             kerberos_ATTR_TICKET_LOGON
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2026,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    get_context
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1675
      functionLinenumberEnd: 1686
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          52
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - sspi_SecureHandleGetLowerPointer
        - sspi_SecureHandleGetUpperPointer
        - strncmp
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1679,16'
          Dst:             sspi_SecureHandleGetUpperPointer
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1683,6'
          Dst:             strncmp
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1685,9'
          Dst:             sspi_SecureHandleGetLowerPointer
    - functionName:    kerberos_ATTR_PACKAGE_INFO_A
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1868
      functionLinenumberEnd: 1890
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          86
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - _strdup
        - sspi_ContextBufferAlloc
        - sspi_ContextBufferFree
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1871,20'
          Dst:             sspi_ContextBufferAlloc
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1880,23'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1881,26'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1885,3'
          Dst:             sspi_ContextBufferFree
    - functionName:    retrieveTgtForPrincipal
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1380
      functionLinenumberEnd: 1418
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          167
      EdgeCount:       34
      CyclomaticComplexity: 11
      functionsReached:
        - kerberos_log_msg
        - krb5_free_keytab_entry_contents
        - krb5_get_init_creds_keytab
        - krb5_kt_end_seq_get
        - krb5_kt_next_entry
        - krb5_kt_start_seq_get
        - krb5_principal_compare
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1384,6'
          Dst:             krb5_kt_start_seq_get
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1384,6'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1390,7'
          Dst:             krb5_kt_next_entry
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1390,7'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1396,7'
          Dst:             krb5_principal_compare
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1398,8'
          Dst:             krb5_free_keytab_entry_contents
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1398,8'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1404,6'
          Dst:             krb5_kt_end_seq_get
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1404,6'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1411,6'
          Dst:             krb5_get_init_creds_keytab
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1411,6'
          Dst:             kerberos_log_msg
    - functionName:    krb5_kt_start_seq_get
      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:    krb5_kt_next_entry
      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:    krb5_principal_compare
      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:    krb5_free_keytab_entry_contents
      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:    krb5_kt_end_seq_get
      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:    krb5_get_init_creds_keytab
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    retrieveSomeTgt
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1422
      functionLinenumberEnd: 1490
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          182
      EdgeCount:       28
      CyclomaticComplexity: 9
      functionsReached:
        - kerberos_log_msg
        - krb5_free_default_realm
        - krb5_free_principal
        - krb5_get_default_realm
        - krb5_parse_name_flags
        - retrieveTgtForPrincipal
        - snprintf
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1428,6'
          Dst:             krb5_parse_name_flags
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1428,6'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1444,8'
          Dst:             krb5_get_default_realm
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1444,8'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1449,46'
          Dst:             strlen
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1459,6'
          Dst:             retrieveTgtForPrincipal
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1473,9'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1475,3'
          Dst:             krb5_free_principal
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1477,8'
          Dst:             krb5_parse_name_flags
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1477,8'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1481,8'
          Dst:             retrieveTgtForPrincipal
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1486,3'
          Dst:             krb5_free_default_realm
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1488,2'
          Dst:             krb5_free_principal
    - functionName:    krb5_parse_name_flags
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    krb5_get_default_realm
      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:    krb5_free_principal
      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:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    krb5_free_default_realm
      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:    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:
        - ''
        - ''
      BBCount:         9
      ICount:          48
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/endian.h:236,3'
          Dst:             winpr_int_assert
    - functionName:    Stream_Buffer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1285
      functionLinenumberEnd: 1287
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          31
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1286,3'
          Dst:             winpr_int_assert
    - functionName:    append
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 784
      functionLinenumberEnd: 792
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          58
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - strlen
        - strncat
        - strnlen
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:785,22'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:786,22'
          Dst:             strlen
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:789,7'
          Dst:             strncat
    - functionName:    kerberos_rd_tgt_req_tag3
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 851
      functionLinenumberEnd: 866
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          59
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - WinPrAsn1DecReadGeneralString
        - append
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:855,7'
          Dst:             WinPrAsn1DecReadGeneralString
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:858,7'
          Dst:             append
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:860,7'
          Dst:             append
    - functionName:    kerberos_rd_tgt_req_tag2
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 795
      functionLinenumberEnd: 847
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          132
      EdgeCount:       34
      CyclomaticComplexity: 11
      functionsReached:
        - WinPrAsn1DecPeekTag
        - WinPrAsn1DecReadContextualInteger
        - WinPrAsn1DecReadContextualSequence
        - WinPrAsn1DecReadGeneralString
        - WinPrAsn1DecReadSequence
        - WinPrAsn1Decoder_init
        - append
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:797,25'
          Dst:             WinPrAsn1Decoder_init
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:800,7'
          Dst:             WinPrAsn1DecReadSequence
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:808,9'
          Dst:             WinPrAsn1DecReadContextualInteger
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:813,8'
          Dst:             WinPrAsn1DecReadContextualSequence
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:820,10'
          Dst:             WinPrAsn1DecPeekTag
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:824,9'
          Dst:             WinPrAsn1DecReadGeneralString
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:829,10'
          Dst:             append
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:834,9'
          Dst:             append
    - functionName:    WinPrAsn1Decoder_init
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/asn1.h'
      linkageType:     InternalLinkage
      functionLinenumber: 78
      functionLinenumberEnd: 81
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_Init
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/asn1.h:79,25'
          Dst:             Stream_Init
    - functionName:    Stream_Init
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 63
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    Stream_Length
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1345
      functionLinenumberEnd: 1347
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          31
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1346,3'
          Dst:             winpr_int_assert
    - functionName:    kerberos_rd_tgt_rep
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 923
      functionLinenumberEnd: 944
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          77
      EdgeCount:       16
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_Buffer
        - Stream_Length
        - WinPrAsn1DecGetStream
        - WinPrAsn1DecReadContextualTag
        - WinPrAsn1Decoder_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:928,31'
          Dst:             WinPrAsn1Decoder_init
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:930,6'
          Dst:             WinPrAsn1DecReadContextualTag
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:936,14'
          Dst:             WinPrAsn1DecGetStream
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:937,17'
          Dst:             Stream_Buffer
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:939,21'
          Dst:             Stream_Length
    - functionName:    kerberos_rd_tgt_req
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 870
      functionLinenumberEnd: 920
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         30
      ICount:          161
      EdgeCount:       40
      CyclomaticComplexity: 12
      functionsReached:
        - Stream_Length
        - WinPrAsn1DecGetStream
        - WinPrAsn1DecReadContextualTag
        - WinPrAsn1Decoder_init
        - calloc
        - kerberos_rd_tgt_req_tag2
        - kerberos_rd_tgt_req_tag3
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:877,14'
          Dst:             WinPrAsn1DecGetStream
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:878,21'
          Dst:             Stream_Length
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:882,26'
          Dst:             WinPrAsn1Decoder_init
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:884,6'
          Dst:             WinPrAsn1DecReadContextualTag
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:887,14'
          Dst:             calloc
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:898,8'
          Dst:             kerberos_rd_tgt_req_tag2
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:901,23'
          Dst:             WinPrAsn1DecReadContextualTag
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:910,9'
          Dst:             kerberos_rd_tgt_req_tag3
    - functionName:    isValidIPv6
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 271
      functionLinenumberEnd: 274
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - inet_pton
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:273,15'
          Dst:             inet_pton
    - functionName:    isValidIPv4
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 264
      functionLinenumberEnd: 267
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - inet_pton
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:266,15'
          Dst:             inet_pton
    - functionName:    kerberos_ContextFree
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 197
      functionLinenumberEnd: 220
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          94
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - credentials_unref
        - krb5_auth_con_free
        - krb5glue_keys_free
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:210,5'
          Dst:             krb5_auth_con_free
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:212,4'
          Dst:             krb5glue_keys_free
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:215,3'
          Dst:             credentials_unref
    - functionName:    credentials_unref
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 628
      functionLinenumberEnd: 648
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          104
      EdgeCount:       25
      CyclomaticComplexity: 6
      functionsReached:
        - InterlockedDecrement
        - krb5_cc_close
        - krb5_cc_destroy
        - krb5_free_context
        - krb5_kt_close
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:629,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:631,6'
          Dst:             InterlockedDecrement
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:639,4'
          Dst:             krb5_cc_destroy
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:641,4'
          Dst:             krb5_cc_close
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:644,3'
          Dst:             krb5_kt_close
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:646,2'
          Dst:             krb5_free_context
    - functionName:    krb5_cc_destroy
      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:    krb5_cc_close
      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:    krb5_kt_close
      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:    krb5_free_context
      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:    kerberos_hash_channel_bindings
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 985
      functionLinenumberEnd: 1024
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         29
      ICount:          202
      EdgeCount:       40
      CyclomaticComplexity: 13
      functionsReached:
        - winpr_Data_Write_UINT32
        - winpr_Digest_Update
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:988,2'
          Dst:             winpr_Data_Write_UINT32
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:989,7'
          Dst:             winpr_Digest_Update
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:992,2'
          Dst:             winpr_Data_Write_UINT32
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:993,7'
          Dst:             winpr_Digest_Update
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:997,7'
          Dst:             winpr_Digest_Update
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1001,2'
          Dst:             winpr_Data_Write_UINT32
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1002,7'
          Dst:             winpr_Digest_Update
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1005,2'
          Dst:             winpr_Data_Write_UINT32
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1006,7'
          Dst:             winpr_Digest_Update
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1010,7'
          Dst:             winpr_Digest_Update
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1014,2'
          Dst:             winpr_Data_Write_UINT32
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1015,7'
          Dst:             winpr_Digest_Update
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1019,7'
          Dst:             winpr_Digest_Update
    - 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:
        - ''
        - ''
      BBCount:         9
      ICount:          45
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_Data_Write_UINT16
        - winpr_int_assert
      functionUses:    8
      BranchProfiles:  []
      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:    kerberos_rd_tgt_token
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 947
      functionLinenumberEnd: 982
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          120
      EdgeCount:       30
      CyclomaticComplexity: 6
      functionsReached:
        - WinPrAsn1DecReadContextualInteger
        - WinPrAsn1DecReadSequence
        - WinPrAsn1Decoder_InitMem
        - WinPrAsn1Decoder_init
        - kerberos_rd_tgt_rep
        - kerberos_rd_tgt_req
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/sspi/Kerberos/kerberos.c:972,2'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:951,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:956,25'
          Dst:             WinPrAsn1Decoder_init
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:957,2'
          Dst:             WinPrAsn1Decoder_InitMem
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:960,25'
          Dst:             WinPrAsn1Decoder_init
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:961,7'
          Dst:             WinPrAsn1DecReadSequence
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:965,7'
          Dst:             WinPrAsn1DecReadContextualInteger
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:969,7'
          Dst:             WinPrAsn1DecReadContextualInteger
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:975,11'
          Dst:             kerberos_rd_tgt_req
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:977,11'
          Dst:             kerberos_rd_tgt_rep
    - functionName:    kerberos_mk_tgt_token
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 699
      functionLinenumberEnd: 781
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         70
      ICount:          331
      EdgeCount:       95
      CyclomaticComplexity: 27
      functionsReached:
        - Stream_StaticInit
        - WinPrAsn1EncContextualInteger
        - WinPrAsn1EncContextualRawContent
        - WinPrAsn1EncContextualSeqContainer
        - WinPrAsn1EncEndContainer
        - WinPrAsn1EncGeneralString
        - WinPrAsn1EncSeqContainer
        - WinPrAsn1EncStreamSize
        - WinPrAsn1EncToStream
        - WinPrAsn1Encoder_Free
        - WinPrAsn1Encoder_New
        - sspi_gss_wrap_token
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:707,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:714,8'
          Dst:             WinPrAsn1Encoder_New
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:719,7'
          Dst:             WinPrAsn1EncSeqContainer
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:723,7'
          Dst:             WinPrAsn1EncContextualInteger
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:727,7'
          Dst:             WinPrAsn1EncContextualInteger
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:733,8'
          Dst:             WinPrAsn1EncContextualSeqContainer
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:737,8'
          Dst:             WinPrAsn1EncContextualInteger
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:741,8'
          Dst:             WinPrAsn1EncContextualSeqContainer
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:744,8'
          Dst:             WinPrAsn1EncGeneralString
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:747,16'
          Dst:             WinPrAsn1EncGeneralString
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:750,8'
          Dst:             WinPrAsn1EncEndContainer
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:750,42'
          Dst:             WinPrAsn1EncEndContainer
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:758,8'
          Dst:             WinPrAsn1EncContextualRawContent
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:762,7'
          Dst:             WinPrAsn1EncEndContainer
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:765,7'
          Dst:             WinPrAsn1EncStreamSize
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:768,2'
          Dst:             Stream_StaticInit
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:769,7'
          Dst:             WinPrAsn1EncToStream
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:774,6'
          Dst:             sspi_gss_wrap_token
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:779,2'
          Dst:             WinPrAsn1Encoder_Free
    - functionName:    sspi_gss_oid_compare
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/../sspi_gss.h'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 78
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          70
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - memcmp
        - winpr_int_assert
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Kerberos/../sspi_gss.h:75,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Kerberos/../sspi_gss.h:76,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Kerberos/../sspi_gss.h:78,38'
          Dst:             memcmp
    - functionName:    kerberos_ContextNew
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 223
      functionLinenumberEnd: 233
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - InterlockedIncrement
        - calloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:226,26'
          Dst:             calloc
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:231,2'
          Dst:             InterlockedIncrement
    - functionName:    isValidIP
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 278
      functionLinenumberEnd: 279
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          32
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - isValidIPv4
        - isValidIPv6
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:279,9'
          Dst:             isValidIPv4
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:279,35'
          Dst:             isValidIPv6
    - functionName:    get_realm_name
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 286
      functionLinenumberEnd: 296
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          71
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - winpr_asprintf
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:287,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:293,8'
          Dst:             winpr_asprintf
    - functionName:    krb5_prompter
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 239
      functionLinenumberEnd: 254
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          124
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - _strdup
        - krb5glue_get_prompt_type
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:242,27'
          Dst:             krb5glue_get_prompt_type
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:245,29'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:247,23'
          Dst:             strlen
    - functionName:    build_krbtgt
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 314
      functionLinenumberEnd: 330
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          62
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - get_realm_name
        - krb5_parse_name
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:319,15'
          Dst:             get_realm_name
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:325,8'
          Dst:             krb5_parse_name
    - functionName:    krb5_parse_name
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    KERBEROS_init
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2601
      functionLinenumberEnd: 2606
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - InitializeConstWCharFromUtf8
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2602,2'
          Dst:             InitializeConstWCharFromUtf8
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2604,2'
          Dst:             InitializeConstWCharFromUtf8
    - functionName:    kerberos_SetCredentialsAttributesW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2172
      functionLinenumberEnd: 2173
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - kerberos_SetCredentialsAttributesX
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2173,9'
          Dst:             kerberos_SetCredentialsAttributesX
    - functionName:    kerberos_SetContextAttributesW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2094
      functionLinenumberEnd: 2095
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    kerberos_QueryContextAttributesW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2065
      functionLinenumberEnd: 2089
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - get_context
        - kerberos_ATTR_PACKAGE_INFO_W
        - kerberos_QueryContextAttributesCommon
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/sspi/Kerberos/kerberos.c:2079,2'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2073,25'
          Dst:             get_context
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2082,11'
          Dst:             kerberos_ATTR_PACKAGE_INFO_W
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2088,9'
          Dst:             kerberos_QueryContextAttributesCommon
    - functionName:    kerberos_InitializeSecurityContextW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1356
      functionLinenumberEnd: 1375
      functionDepth:   0
      returnType:      int
      argCount:        12
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
        - int
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          93
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - ConvertWCharToUtf8Alloc
        - kerberos_InitializeSecurityContextA
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1362,17'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1367,11'
          Dst:             kerberos_InitializeSecurityContextA
    - functionName:    kerberos_InitializeSecurityContextA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1035
      functionLinenumberEnd: 1350
      functionDepth:   0
      returnType:      int
      argCount:        12
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
        - int
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         160
      ICount:          1025
      EdgeCount:       216
      CyclomaticComplexity: 58
      functionsReached:
        - WLog_Print_dbg_tag
        - _strdup
        - isValidIP
        - kerberos_ContextFree
        - kerberos_ContextNew
        - kerberos_hash_channel_bindings
        - kerberos_log_msg
        - kerberos_mk_tgt_token
        - kerberos_rd_tgt_token
        - krb5_auth_con_getlocalseqnumber
        - krb5_auth_con_getremoteseqnumber
        - krb5_auth_con_init
        - krb5_auth_con_set_req_cksumtype
        - krb5_auth_con_setflags
        - krb5_cc_get_principal
        - krb5_free_ap_rep_enc_part
        - krb5_free_cred_contents
        - krb5_free_creds
        - krb5_free_data_contents
        - krb5_get_credentials
        - krb5_mk_req_extended
        - krb5_rd_rep
        - krb5_sname_to_principal
        - krb5glue_log_error
        - krb5glue_update_keyset
        - sspi_FindSecBuffer
        - sspi_SecureHandleGetLowerPointer
        - sspi_SecureHandleInvalidate
        - sspi_SecureHandleSetLowerPointer
        - sspi_SecureHandleSetUpperPointer
        - sspi_gss_oid_compare
        - sspi_gss_unwrap_token
        - sspi_gss_wrap_token
        - strchr
        - winpr_Data_Write_UINT32
        - winpr_Digest_Final
        - winpr_Digest_Free
        - winpr_Digest_Init
        - winpr_Digest_New
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/sspi/Kerberos/kerberos.c:1147,2'
          Branch Sides:    []
        - Branch String:   'winpr/libwinpr/sspi/Kerberos/kerberos.c:1328,3'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1057,33'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1063,12'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1070,18'
          Dst:             sspi_FindSecBuffer
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1071,21'
          Dst:             sspi_FindSecBuffer
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1074,19'
          Dst:             sspi_FindSecBuffer
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1085,12'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1091,10'
          Dst:             strchr
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1099,7'
          Dst:             isValidIP
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1108,13'
          Dst:             kerberos_ContextNew
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1118,26'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1135,25'
          Dst:             sspi_gss_unwrap_token
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1137,25'
          Dst:             sspi_gss_oid_compare
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1138,26'
          Dst:             sspi_gss_oid_compare
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1151,9'
          Dst:             kerberos_mk_tgt_token
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1163,9'
          Dst:             kerberos_rd_tgt_token
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1173,8'
          Dst:             krb5_auth_con_init
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1173,8'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1175,8'
          Dst:             krb5_auth_con_setflags
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1175,8'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1178,8'
          Dst:             krb5_auth_con_set_req_cksumtype
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1178,8'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1183,8'
          Dst:             krb5_sname_to_principal
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1183,8'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1187,8'
          Dst:             krb5_cc_get_principal
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1187,8'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1194,8'
          Dst:             krb5_get_credentials
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1194,8'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1205,4'
          Dst:             winpr_Data_Write_UINT32
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1206,4'
          Dst:             winpr_Data_Write_UINT32
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1225,11'
          Dst:             winpr_Digest_New
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1229,10'
          Dst:             winpr_Digest_Init
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1232,10'
          Dst:             kerberos_hash_channel_bindings
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1235,10'
          Dst:             winpr_Digest_Final
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1240,8'
          Dst:             krb5_mk_req_extended
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1240,8'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1244,9'
          Dst:             sspi_gss_wrap_token
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1251,9'
          Dst:             krb5_auth_con_getlocalseqnumber
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1251,9'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1257,8'
          Dst:             krb5glue_update_keyset
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1257,8'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1273,9'
          Dst:             krb5_rd_rep
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1273,9'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1276,5'
          Dst:             krb5_free_ap_rep_enc_part
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1280,5'
          Dst:             krb5glue_log_error
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1288,9'
          Dst:             krb5_auth_con_getremoteseqnumber
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1288,9'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1293,8'
          Dst:             krb5glue_update_keyset
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1293,8'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1306,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1315,2'
          Dst:             krb5_free_cred_contents
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1318,2'
          Dst:             krb5_free_creds
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1320,3'
          Dst:             krb5_free_data_contents
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1322,2'
          Dst:             winpr_Digest_Free
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1332,5'
          Dst:             sspi_SecureHandleSetLowerPointer
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1333,5'
          Dst:             sspi_SecureHandleSetUpperPointer
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1336,5'
          Dst:             kerberos_ContextFree
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1337,5'
          Dst:             sspi_SecureHandleInvalidate
    - functionName:    krb5_auth_con_setflags
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    krb5_auth_con_set_req_cksumtype
      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:    krb5_mk_req_extended
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    krb5_auth_con_getlocalseqnumber
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    krb5_rd_rep
      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:    krb5_free_ap_rep_enc_part
      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:    krb5_auth_con_getremoteseqnumber
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    krb5_free_data_contents
      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:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    kerberos_AcquireCredentialsHandleW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 597
      functionLinenumberEnd: 623
      functionDepth:   0
      returnType:      int
      argCount:        9
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          94
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - ConvertWCharToUtf8Alloc
        - kerberos_AcquireCredentialsHandleA
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:604,15'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:610,13'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:616,6'
          Dst:             kerberos_AcquireCredentialsHandleA
    - functionName:    kerberos_AcquireCredentialsHandleA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 341
      functionLinenumberEnd: 591
      functionDepth:   0
      returnType:      int
      argCount:        9
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         175
      ICount:          868
      EdgeCount:       223
      CyclomaticComplexity: 50
      functionsReached:
        - CharUpperA
        - WLog_Print_dbg_tag
        - _strdup
        - build_krbtgt
        - calloc
        - kerberos_log_msg
        - krb5_cc_cache_match
        - krb5_cc_close
        - krb5_cc_default
        - krb5_cc_destroy
        - krb5_cc_get_principal
        - krb5_cc_initialize
        - krb5_cc_new_unique
        - krb5_cc_resolve
        - krb5_cc_retrieve_cred
        - krb5_cc_set_default_name
        - krb5_free_context
        - krb5_free_cred_contents
        - krb5_free_principal
        - krb5_init_context
        - krb5_kt_close
        - krb5_kt_default
        - krb5_kt_resolve
        - krb5_parse_name
        - krb5_prompter
        - krb5_set_default_realm
        - krb5_timeofday
        - krb5glue_get_init_creds
        - sspi_CopyAuthIdentityFieldsA
        - sspi_GetAuthIdentityFlags
        - sspi_SecureHandleSetLowerPointer
        - sspi_SecureHandleSetUpperPointer
        - strchr
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:361,26'
          Dst:             sspi_GetAuthIdentityFlags
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:390,4'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:396,8'
          Dst:             sspi_CopyAuthIdentityFieldsA
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:399,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:407,6'
          Dst:             krb5_init_context
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:407,6'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:412,19'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:416,3'
          Dst:             CharUpperA
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:418,24'
          Dst:             krb5_set_default_realm
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:418,24'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:427,25'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:432,13'
          Dst:             strchr
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:434,4'
          Dst:             CharUpperA
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:436,24'
          Dst:             krb5_parse_name
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:436,24'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:441,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:446,8'
          Dst:             krb5_cc_set_default_name
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:446,8'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:455,7'
          Dst:             krb5_cc_cache_match
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:459,9'
          Dst:             krb5_cc_new_unique
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:459,9'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:464,9'
          Dst:             krb5_cc_resolve
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:464,9'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:468,8'
          Dst:             krb5_cc_initialize
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:468,8'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:473,8'
          Dst:             krb5_cc_default
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:473,8'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:477,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:482,7'
          Dst:             krb5_cc_default
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:482,7'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:484,7'
          Dst:             krb5_cc_get_principal
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:484,7'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:486,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:493,8'
          Dst:             krb5_cc_new_unique
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:493,8'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:498,8'
          Dst:             krb5_cc_resolve
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:498,8'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:501,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:506,7'
          Dst:             krb5_kt_resolve
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:506,7'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:512,8'
          Dst:             krb5_kt_default
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:512,8'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:523,3'
          Dst:             krb5_timeofday
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:527,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:528,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:529,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:530,7'
          Dst:             build_krbtgt
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:530,7'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:533,12'
          Dst:             krb5_cc_retrieve_cred
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:534,3'
          Dst:             krb5_free_principal
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:535,3'
          Dst:             krb5_free_cred_contents
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:538,8'
          Dst:             krb5glue_get_init_creds
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:538,8'
          Dst:             krb5_prompter
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:538,8'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:544,16'
          Dst:             calloc
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:560,3'
          Dst:             krb5_free_principal
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:568,6'
          Dst:             krb5_cc_destroy
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:570,6'
          Dst:             krb5_cc_close
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:573,5'
          Dst:             krb5_kt_close
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:575,4'
          Dst:             krb5_free_context
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:582,3'
          Dst:             sspi_SecureHandleSetLowerPointer
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:583,3'
          Dst:             sspi_SecureHandleSetUpperPointer
    - functionName:    krb5_init_context
      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:    krb5_set_default_realm
      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:    krb5_cc_set_default_name
      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:    krb5_cc_cache_match
      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:    krb5_cc_new_unique
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    krb5_cc_resolve
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    krb5_cc_initialize
      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:    krb5_cc_default
      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:    krb5_kt_resolve
      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:    krb5_kt_default
      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:    krb5_timeofday
      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:    krb5_cc_retrieve_cred
      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:    kerberos_QueryCredentialsAttributesW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 671
      functionLinenumberEnd: 686
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       11
      CyclomaticComplexity: 7
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/sspi/Kerberos/kerberos.c:673,2'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:678,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    kerberos_SetCredentialsAttributesA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2179
      functionLinenumberEnd: 2180
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - kerberos_SetCredentialsAttributesX
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2180,9'
          Dst:             kerberos_SetCredentialsAttributesX
    - functionName:    kerberos_SetContextAttributesA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2101
      functionLinenumberEnd: 2102
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    kerberos_DecryptMessage
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2278
      functionLinenumberEnd: 2377
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         53
      ICount:          509
      EdgeCount:       75
      CyclomaticComplexity: 24
      functionsReached:
        - get_context
        - get_key
        - kerberos_log_msg
        - krb5_c_crypto_length_iov
        - krb5_k_decrypt_iov
        - krb5_k_key_enctype
        - memcmp
        - sspi_FindSecBuffer
        - winpr_Data_Get_UINT16_BE
        - winpr_Data_Get_UINT64_BE
        - winpr_Data_Write_UINT16_BE
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2280,25'
          Dst:             get_context
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2289,32'
          Dst:             sspi_FindSecBuffer
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2290,27'
          Dst:             sspi_FindSecBuffer
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2297,26'
          Dst:             winpr_Data_Get_UINT16_BE
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2299,22'
          Dst:             winpr_Data_Get_UINT16_BE
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2300,23'
          Dst:             winpr_Data_Get_UINT16_BE
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2301,26'
          Dst:             winpr_Data_Get_UINT64_BE
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2322,21'
          Dst:             get_key
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2335,6'
          Dst:             krb5_k_key_enctype
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2335,6'
          Dst:             krb5_c_crypto_length_iov
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2335,6'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2362,6'
          Dst:             krb5_k_decrypt_iov
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2362,6'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2366,2'
          Dst:             winpr_Data_Write_UINT16_BE
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2367,2'
          Dst:             winpr_Data_Write_UINT16_BE
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2368,6'
          Dst:             memcmp
    - functionName:    krb5_c_crypto_length_iov
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    krb5_k_decrypt_iov
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    kerberos_EncryptMessage
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2187
      functionLinenumberEnd: 2272
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         65
      ICount:          491
      EdgeCount:       80
      CyclomaticComplexity: 17
      functionsReached:
        - get_context
        - get_key
        - kerberos_log_msg
        - krb5_c_crypto_length_iov
        - krb5_k_encrypt_iov
        - krb5_k_key_enctype
        - sspi_FindSecBuffer
        - winpr_Data_Write_UINT16_BE
        - winpr_Data_Write_UINT32
        - winpr_Data_Write_UINT64_BE
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2189,25'
          Dst:             get_context
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2210,15'
          Dst:             sspi_FindSecBuffer
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2211,16'
          Dst:             sspi_FindSecBuffer
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2222,8'
          Dst:             get_key
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2235,6'
          Dst:             krb5_k_key_enctype
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2235,6'
          Dst:             krb5_c_crypto_length_iov
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2235,6'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2251,2'
          Dst:             winpr_Data_Write_UINT16_BE
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2252,14'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2252,14'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2254,2'
          Dst:             winpr_Data_Write_UINT32
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2255,2'
          Dst:             winpr_Data_Write_UINT64_BE
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2262,41'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2262,41'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2262,2'
          Dst:             winpr_Data_Write_UINT16_BE
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2264,6'
          Dst:             krb5_k_encrypt_iov
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2264,6'
          Dst:             kerberos_log_msg
    - functionName:    krb5_k_encrypt_iov
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    kerberos_VerifySignature
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2455
      functionLinenumberEnd: 2534
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         45
      ICount:          350
      EdgeCount:       63
      CyclomaticComplexity: 20
      functionsReached:
        - get_context
        - get_key
        - kerberos_log_msg
        - krb5_c_crypto_length_iov
        - krb5_k_key_enctype
        - krb5_k_verify_checksum_iov
        - memcmp
        - sspi_FindSecBuffer
        - winpr_Data_Get_UINT16_BE
        - winpr_Data_Get_UINT64_BE
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2470,25'
          Dst:             get_context
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2477,15'
          Dst:             sspi_FindSecBuffer
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2478,16'
          Dst:             sspi_FindSecBuffer
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2485,11'
          Dst:             winpr_Data_Get_UINT16_BE
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2487,11'
          Dst:             winpr_Data_Get_UINT64_BE
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2496,6'
          Dst:             memcmp
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2503,8'
          Dst:             get_key
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2512,6'
          Dst:             krb5_k_key_enctype
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2512,6'
          Dst:             krb5_c_crypto_length_iov
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2512,6'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2523,6'
          Dst:             krb5_k_verify_checksum_iov
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2523,6'
          Dst:             kerberos_log_msg
    - functionName:    krb5_k_verify_checksum_iov
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    kerberos_MakeSignature
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2383
      functionLinenumberEnd: 2449
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         42
      ICount:          332
      EdgeCount:       53
      CyclomaticComplexity: 13
      functionsReached:
        - get_context
        - get_key
        - kerberos_log_msg
        - krb5_c_crypto_length_iov
        - krb5_k_key_enctype
        - krb5_k_make_checksum_iov
        - sspi_FindSecBuffer
        - winpr_Data_Write_UINT16_BE
        - winpr_Data_Write_UINT64_BE
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2385,25'
          Dst:             get_context
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2403,15'
          Dst:             sspi_FindSecBuffer
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2404,16'
          Dst:             sspi_FindSecBuffer
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2411,8'
          Dst:             get_key
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2421,6'
          Dst:             krb5_k_key_enctype
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2421,6'
          Dst:             krb5_c_crypto_length_iov
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2421,6'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2430,2'
          Dst:             winpr_Data_Write_UINT16_BE
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2431,14'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2431,14'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2433,2'
          Dst:             winpr_Data_Write_UINT64_BE
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2440,6'
          Dst:             krb5_k_make_checksum_iov
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2440,6'
          Dst:             kerberos_log_msg
    - functionName:    krb5_k_make_checksum_iov
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    kerberos_QueryContextAttributesA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2037
      functionLinenumberEnd: 2061
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - get_context
        - kerberos_ATTR_PACKAGE_INFO_A
        - kerberos_QueryContextAttributesCommon
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/sspi/Kerberos/kerberos.c:2051,2'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2045,25'
          Dst:             get_context
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2054,11'
          Dst:             kerberos_ATTR_PACKAGE_INFO_A
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:2060,9'
          Dst:             kerberos_QueryContextAttributesCommon
    - functionName:    kerberos_DeleteSecurityContext
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1706
      functionLinenumberEnd: 1719
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - get_context
        - kerberos_ContextFree
        - sspi_SecureHandleInvalidate
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1708,25'
          Dst:             get_context
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1709,2'
          Dst:             sspi_SecureHandleInvalidate
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1713,2'
          Dst:             kerberos_ContextFree
    - functionName:    kerberos_AcceptSecurityContext
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1499
      functionLinenumberEnd: 1671
      functionDepth:   0
      returnType:      int
      argCount:        9
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         117
      ICount:          686
      EdgeCount:       158
      CyclomaticComplexity: 43
      functionsReached:
        - kerberos_ContextFree
        - kerberos_ContextNew
        - kerberos_log_msg
        - kerberos_mk_tgt_token
        - kerberos_rd_tgt_token
        - krb5_auth_con_getauthenticator
        - krb5_auth_con_getlocalseqnumber
        - krb5_auth_con_getremoteseqnumber
        - krb5_auth_con_init
        - krb5_auth_con_setflags
        - krb5_auth_con_setuseruserkey
        - krb5_free_data_contents
        - krb5_free_keytab_entry_contents
        - krb5_mk_rep
        - krb5_rd_req
        - krb5glue_authenticator_validate_chksum
        - krb5glue_update_keyset
        - retrieveSomeTgt
        - sspi_FindSecBuffer
        - sspi_SecureHandleGetLowerPointer
        - sspi_SecureHandleInvalidate
        - sspi_SecureHandleSetLowerPointer
        - sspi_SecureHandleSetUpperPointer
        - sspi_gss_oid_compare
        - sspi_gss_unwrap_token
        - sspi_gss_wrap_token
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/sspi/Kerberos/kerberos.c:1649,3'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1519,25'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1520,33'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1523,18'
          Dst:             sspi_FindSecBuffer
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1525,19'
          Dst:             sspi_FindSecBuffer
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1530,7'
          Dst:             sspi_gss_unwrap_token
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1536,13'
          Dst:             kerberos_ContextNew
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1539,7'
          Dst:             sspi_gss_oid_compare
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1544,12'
          Dst:             sspi_gss_oid_compare
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1551,25'
          Dst:             sspi_gss_oid_compare
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1552,26'
          Dst:             sspi_gss_oid_compare
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1558,8'
          Dst:             kerberos_rd_tgt_token
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1561,8'
          Dst:             retrieveSomeTgt
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1564,8'
          Dst:             kerberos_mk_tgt_token
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1567,7'
          Dst:             krb5_auth_con_init
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1567,7'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1570,7'
          Dst:             krb5_auth_con_setuseruserkey
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1570,7'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1578,7'
          Dst:             krb5_rd_req
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1578,7'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1582,7'
          Dst:             krb5_auth_con_setflags
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1582,7'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1587,7'
          Dst:             krb5_auth_con_getauthenticator
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1587,7'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1590,8'
          Dst:             krb5glue_authenticator_validate_chksum
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1598,8'
          Dst:             krb5_mk_rep
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1598,8'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1600,9'
          Dst:             sspi_gss_wrap_token
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1617,8'
          Dst:             krb5_auth_con_getlocalseqnumber
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1617,8'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1620,8'
          Dst:             krb5_auth_con_getremoteseqnumber
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1620,8'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1625,7'
          Dst:             krb5glue_update_keyset
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1625,7'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1643,3'
          Dst:             krb5_free_data_contents
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1645,3'
          Dst:             krb5_free_keytab_entry_contents
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1653,5'
          Dst:             sspi_SecureHandleSetLowerPointer
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1654,5'
          Dst:             sspi_SecureHandleSetUpperPointer
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1657,5'
          Dst:             kerberos_ContextFree
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:1658,5'
          Dst:             sspi_SecureHandleInvalidate
    - functionName:    krb5_auth_con_setuseruserkey
      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:    krb5_rd_req
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - '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:    krb5_mk_rep
      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:    kerberos_FreeCredentialsHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 653
      functionLinenumberEnd: 666
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - credentials_unref
        - sspi_SecureHandleGetLowerPointer
        - sspi_SecureHandleInvalidate
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:655,33'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:656,2'
          Dst:             sspi_SecureHandleInvalidate
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:660,2'
          Dst:             credentials_unref
    - functionName:    kerberos_QueryCredentialsAttributesA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 691
      functionLinenumberEnd: 692
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - kerberos_QueryCredentialsAttributesW
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:692,9'
          Dst:             kerberos_QueryCredentialsAttributesW
    - functionName:    krb_log_context_encryption
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/kerberos.c'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 192
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          91
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - GetProcAddress
        - WLog_Print_dbg_tag
        - kerberos_log_msg
        - krb5_enctype_to_string
        - krb5_free_data_contents
        - krb5_free_error_message
        - krb5_get_error_message
        - winpr_BinToHexString
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:163,6'
          Dst:             GetProcAddress
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:172,24'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:173,3'
          Dst:             krb5_enctype_to_string
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:174,21'
          Dst:             krb5_get_error_message
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:176,20'
          Dst:             winpr_BinToHexString
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:177,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:180,3'
          Dst:             krb5_free_data_contents
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:181,3'
          Dst:             krb5_free_data_contents
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:182,3'
          Dst:             krb5_free_error_message
        - Src:             'winpr/libwinpr/sspi/Kerberos/kerberos.c:188,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    krb5_enctype_to_string
      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:    create_temporary_file
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/krb5glue_mit.c'
      linkageType:     InternalLinkage
      functionLinenumber: 37
      functionLinenumberEnd: 48
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - GetKnownSubPath
        - winpr_BinToHexString
        - winpr_RAND
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Kerberos/krb5glue_mit.c:42,6'
          Dst:             winpr_RAND
        - Src:             'winpr/libwinpr/sspi/Kerberos/krb5glue_mit.c:44,8'
          Dst:             winpr_BinToHexString
        - Src:             'winpr/libwinpr/sspi/Kerberos/krb5glue_mit.c:45,9'
          Dst:             GetKnownSubPath
    - functionName:    krb5glue_get_init_creds
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/krb5glue_mit.c'
      linkageType:     InternalLinkage
      functionLinenumber: 125
      functionLinenumberEnd: 258
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         72
      ICount:          492
      EdgeCount:       98
      CyclomaticComplexity: 28
      functionsReached:
        - calloc
        - create_temporary_file
        - kerberos_log_msg
        - krb5_free_context
        - krb5_get_init_creds_opt_alloc
        - krb5_get_init_creds_opt_free
        - krb5_get_init_creds_opt_set_fast_ccache_name
        - krb5_get_init_creds_opt_set_forwardable
        - krb5_get_init_creds_opt_set_in_ccache
        - krb5_get_init_creds_opt_set_out_ccache
        - krb5_get_init_creds_opt_set_pa
        - krb5_get_init_creds_opt_set_pac_request
        - krb5_get_init_creds_opt_set_proxiable
        - krb5_get_init_creds_opt_set_renew_life
        - krb5_get_init_creds_opt_set_tkt_life
        - krb5_get_profile
        - krb5_init_context_profile
        - krb5_init_creds_free
        - krb5_init_creds_get
        - krb5_init_creds_init
        - krb_log_context_encryption
        - profile_abandon
        - profile_add_relation
        - profile_clear_relation
        - profile_flush_to_file
        - profile_init_path
        - strnlen
        - winpr_DeleteFile
        - winpr_asprintf
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Kerberos/krb5glue_mit.c:130,27'
          Dst:             create_temporary_file
        - Src:             'winpr/libwinpr/sspi/Kerberos/krb5glue_mit.c:134,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Kerberos/krb5glue_mit.c:136,7'
          Dst:             krb5_get_init_creds_opt_alloc
        - Src:             'winpr/libwinpr/sspi/Kerberos/krb5glue_mit.c:136,7'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/krb5glue_mit.c:140,2'
          Dst:             krb5_get_init_creds_opt_set_forwardable
        - Src:             'winpr/libwinpr/sspi/Kerberos/krb5glue_mit.c:141,2'
          Dst:             krb5_get_init_creds_opt_set_proxiable
        - Src:             'winpr/libwinpr/sspi/Kerberos/krb5glue_mit.c:148,4'
          Dst:             krb5_get_init_creds_opt_set_tkt_life
        - Src:             'winpr/libwinpr/sspi/Kerberos/krb5glue_mit.c:150,4'
          Dst:             krb5_get_init_creds_opt_set_renew_life
        - Src:             'winpr/libwinpr/sspi/Kerberos/krb5glue_mit.c:153,9'
          Dst:             krb5_get_init_creds_opt_set_pac_request
        - Src:             'winpr/libwinpr/sspi/Kerberos/krb5glue_mit.c:153,9'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/krb5glue_mit.c:159,9'
          Dst:             krb5_get_init_creds_opt_set_fast_ccache_name
        - Src:             'winpr/libwinpr/sspi/Kerberos/krb5glue_mit.c:159,9'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/krb5glue_mit.c:166,9'
          Dst:             krb5_get_init_creds_opt_set_pa
        - Src:             'winpr/libwinpr/sspi/Kerberos/krb5glue_mit.c:166,9'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/krb5glue_mit.c:173,9'
          Dst:             krb5_get_init_creds_opt_set_pa
        - Src:             'winpr/libwinpr/sspi/Kerberos/krb5glue_mit.c:173,9'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/krb5glue_mit.c:178,32'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/sspi/Kerberos/krb5glue_mit.c:185,14'
          Dst:             krb5_get_profile
        - Src:             'winpr/libwinpr/sspi/Kerberos/krb5glue_mit.c:185,14'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/krb5glue_mit.c:189,8'
          Dst:             winpr_asprintf
        - Src:             'winpr/libwinpr/sspi/Kerberos/krb5glue_mit.c:195,12'
          Dst:             calloc
        - Src:             'winpr/libwinpr/sspi/Kerberos/krb5glue_mit.c:207,4'
          Dst:             profile_clear_relation
        - Src:             'winpr/libwinpr/sspi/Kerberos/krb5glue_mit.c:208,4'
          Dst:             profile_add_relation
        - Src:             'winpr/libwinpr/sspi/Kerberos/krb5glue_mit.c:212,4'
          Dst:             profile_add_relation
        - Src:             'winpr/libwinpr/sspi/Kerberos/krb5glue_mit.c:217,15'
          Dst:             profile_flush_to_file
        - Src:             'winpr/libwinpr/sspi/Kerberos/krb5glue_mit.c:221,4'
          Dst:             profile_abandon
        - Src:             'winpr/libwinpr/sspi/Kerberos/krb5glue_mit.c:223,10'
          Dst:             profile_init_path
        - Src:             'winpr/libwinpr/sspi/Kerberos/krb5glue_mit.c:227,9'
          Dst:             krb5_init_context_profile
        - Src:             'winpr/libwinpr/sspi/Kerberos/krb5glue_mit.c:234,12'
          Dst:             krb5_get_init_creds_opt_set_in_ccache
        - Src:             'winpr/libwinpr/sspi/Kerberos/krb5glue_mit.c:234,12'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/krb5glue_mit.c:237,12'
          Dst:             krb5_get_init_creds_opt_set_out_ccache
        - Src:             'winpr/libwinpr/sspi/Kerberos/krb5glue_mit.c:237,12'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/krb5glue_mit.c:240,12'
          Dst:             krb5_init_creds_init
        - Src:             'winpr/libwinpr/sspi/Kerberos/krb5glue_mit.c:240,12'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/krb5glue_mit.c:244,2'
          Dst:             krb_log_context_encryption
        - Src:             'winpr/libwinpr/sspi/Kerberos/krb5glue_mit.c:246,12'
          Dst:             krb5_init_creds_get
        - Src:             'winpr/libwinpr/sspi/Kerberos/krb5glue_mit.c:246,12'
          Dst:             kerberos_log_msg
        - Src:             'winpr/libwinpr/sspi/Kerberos/krb5glue_mit.c:250,2'
          Dst:             krb5_init_creds_free
        - Src:             'winpr/libwinpr/sspi/Kerberos/krb5glue_mit.c:251,2'
          Dst:             krb5_get_init_creds_opt_free
        - Src:             'winpr/libwinpr/sspi/Kerberos/krb5glue_mit.c:253,3'
          Dst:             krb5_free_context
        - Src:             'winpr/libwinpr/sspi/Kerberos/krb5glue_mit.c:254,2'
          Dst:             profile_abandon
        - Src:             'winpr/libwinpr/sspi/Kerberos/krb5glue_mit.c:255,2'
          Dst:             winpr_DeleteFile
    - functionName:    krb5_get_init_creds_opt_alloc
      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:    krb5_get_init_creds_opt_set_forwardable
      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:    krb5_get_init_creds_opt_set_proxiable
      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:    krb5_get_init_creds_opt_set_tkt_life
      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:    krb5_get_init_creds_opt_set_renew_life
      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:    krb5_get_init_creds_opt_set_pac_request
      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:    krb5_get_init_creds_opt_set_fast_ccache_name
      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:    krb5_get_init_creds_opt_set_pa
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    krb5_get_profile
      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:    profile_clear_relation
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    profile_add_relation
      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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    profile_flush_to_file
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    profile_abandon
      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:    profile_init_path
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    krb5_init_context_profile
      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:    krb5_get_init_creds_opt_set_in_ccache
      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:    krb5_get_init_creds_opt_set_out_ccache
      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:    krb5_init_creds_init
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    krb5_init_creds_get
      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:    krb5_init_creds_free
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    krb5_get_init_creds_opt_free
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    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:
        - ''
      BBCount:         13
      ICount:          64
      EdgeCount:       14
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/endian.h:114,3'
          Dst:             winpr_int_assert
    - functionName:    krb5glue_authenticator_validate_chksum
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/krb5glue_mit.c'
      linkageType:     InternalLinkage
      functionLinenumber: 112
      functionLinenumberEnd: 120
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          88
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - winpr_Data_Get_UINT32
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Kerberos/krb5glue_mit.c:113,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Kerberos/krb5glue_mit.c:118,11'
          Dst:             winpr_Data_Get_UINT32
    - functionName:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 323
      functionLinenumberEnd: 335
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          65
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintTextMessageVA
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:326,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:328,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:332,4'
          Dst:             WLog_PrintTextMessageVA
    - functionName:    krb5glue_log_error
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/krb5glue_mit.c'
      linkageType:     InternalLinkage
      functionLinenumber: 93
      functionLinenumberEnd: 107
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          82
      EdgeCount:       25
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_Print_dbg_tag
        - krb5_free_error
        - krb5_rd_error
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Kerberos/krb5glue_mit.c:97,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Kerberos/krb5glue_mit.c:98,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Kerberos/krb5glue_mit.c:99,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Kerberos/krb5glue_mit.c:101,13'
          Dst:             krb5_rd_error
        - Src:             'winpr/libwinpr/sspi/Kerberos/krb5glue_mit.c:103,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/Kerberos/krb5glue_mit.c:104,3'
          Dst:             krb5_free_error
    - functionName:    krb5_rd_error
      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:    krb5_free_error
      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:    krb5glue_get_prompt_type
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/krb5glue_mit.c'
      linkageType:     InternalLinkage
      functionLinenumber: 83
      functionLinenumberEnd: 89
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          63
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - krb5_get_prompt_types
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Kerberos/krb5glue_mit.c:84,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Kerberos/krb5glue_mit.c:85,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Kerberos/krb5glue_mit.c:88,28'
          Dst:             krb5_get_prompt_types
    - functionName:    krb5_get_prompt_types
      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:    krb5glue_update_keyset
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/krb5glue_mit.c'
      linkageType:     InternalLinkage
      functionLinenumber: 62
      functionLinenumberEnd: 79
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          95
      EdgeCount:       25
      CyclomaticComplexity: 3
      functionsReached:
        - krb5_auth_con_getkey_k
        - krb5_auth_con_getrecvsubkey_k
        - krb5_auth_con_getsendsubkey_k
        - krb5glue_keys_free
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Kerberos/krb5glue_mit.c:63,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Kerberos/krb5glue_mit.c:64,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Kerberos/krb5glue_mit.c:65,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Kerberos/krb5glue_mit.c:67,2'
          Dst:             krb5glue_keys_free
        - Src:             'winpr/libwinpr/sspi/Kerberos/krb5glue_mit.c:68,2'
          Dst:             krb5_auth_con_getkey_k
        - Src:             'winpr/libwinpr/sspi/Kerberos/krb5glue_mit.c:71,3'
          Dst:             krb5_auth_con_getsendsubkey_k
        - Src:             'winpr/libwinpr/sspi/Kerberos/krb5glue_mit.c:72,3'
          Dst:             krb5_auth_con_getrecvsubkey_k
        - Src:             'winpr/libwinpr/sspi/Kerberos/krb5glue_mit.c:76,3'
          Dst:             krb5_auth_con_getsendsubkey_k
        - Src:             'winpr/libwinpr/sspi/Kerberos/krb5glue_mit.c:77,3'
          Dst:             krb5_auth_con_getrecvsubkey_k
    - functionName:    krb5glue_keys_free
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Kerberos/krb5glue_mit.c'
      linkageType:     InternalLinkage
      functionLinenumber: 51
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          57
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - krb5_k_free_key
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Kerberos/krb5glue_mit.c:52,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Kerberos/krb5glue_mit.c:53,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Kerberos/krb5glue_mit.c:55,2'
          Dst:             krb5_k_free_key
        - Src:             'winpr/libwinpr/sspi/Kerberos/krb5glue_mit.c:56,2'
          Dst:             krb5_k_free_key
        - Src:             'winpr/libwinpr/sspi/Kerberos/krb5glue_mit.c:57,2'
          Dst:             krb5_k_free_key
    - functionName:    krb5_auth_con_getkey_k
      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:    krb5_auth_con_getsendsubkey_k
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    krb5_auth_con_getrecvsubkey_k
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    krb5_k_free_key
      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:    negotiate_ContextFree
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Negotiate/negotiate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 174
      functionLinenumberEnd: 180
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          46
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:175,2'
          Dst:             winpr_int_assert
    - functionName:    Stream_Buffer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1285
      functionLinenumberEnd: 1287
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          31
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1286,3'
          Dst:             winpr_int_assert
    - functionName:    Stream_Length
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1345
      functionLinenumberEnd: 1347
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          31
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1346,3'
          Dst:             winpr_int_assert
    - functionName:    Stream_Init
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 63
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    negotiate_write_neg_token
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Negotiate/negotiate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 376
      functionLinenumberEnd: 477
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         70
      ICount:          391
      EdgeCount:       92
      CyclomaticComplexity: 24
      functionsReached:
        - Stream_StaticInit
        - WLog_Print_dbg_tag
        - WinPrAsn1EncAppContainer
        - WinPrAsn1EncContextualEnumerated
        - WinPrAsn1EncContextualOID
        - WinPrAsn1EncContextualOctetString
        - WinPrAsn1EncContextualRawContent
        - WinPrAsn1EncContextualSeqContainer
        - WinPrAsn1EncEndContainer
        - WinPrAsn1EncOID
        - WinPrAsn1EncStreamSize
        - WinPrAsn1EncToStream
        - WinPrAsn1Encoder_Free
        - WinPrAsn1Encoder_New
        - negotiate_mech_name
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:377,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:378,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:388,8'
          Dst:             WinPrAsn1Encoder_New
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:396,8'
          Dst:             WinPrAsn1EncAppContainer
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:400,8'
          Dst:             WinPrAsn1EncOID
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:405,7'
          Dst:             WinPrAsn1EncContextualSeqContainer
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:408,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:413,8'
          Dst:             WinPrAsn1EncContextualRawContent
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:415,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:420,8'
          Dst:             WinPrAsn1EncContextualEnumerated
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:422,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:428,8'
          Dst:             WinPrAsn1EncContextualOID
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:430,3'
          Dst:             negotiate_mech_name
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:430,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:436,7'
          Dst:             WinPrAsn1EncContextualOctetString
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:438,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:444,7'
          Dst:             WinPrAsn1EncContextualOctetString
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:446,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:450,7'
          Dst:             WinPrAsn1EncEndContainer
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:456,8'
          Dst:             WinPrAsn1EncEndContainer
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:460,7'
          Dst:             WinPrAsn1EncStreamSize
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:466,2'
          Dst:             Stream_StaticInit
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:468,6'
          Dst:             WinPrAsn1EncToStream
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:475,2'
          Dst:             WinPrAsn1Encoder_Free
    - functionName:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 323
      functionLinenumberEnd: 335
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          65
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintTextMessageVA
      functionUses:    36
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:326,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:328,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:332,4'
          Dst:             WLog_PrintTextMessageVA
    - functionName:    negotiate_mech_name
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Negotiate/negotiate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 183
      functionLinenumberEnd: 198
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          80
      EdgeCount:       22
      CyclomaticComplexity: 8
      functionsReached:
        - sspi_gss_oid_compare
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:184,6'
          Dst:             sspi_gss_oid_compare
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:186,11'
          Dst:             sspi_gss_oid_compare
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:188,11'
          Dst:             sspi_gss_oid_compare
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:190,11'
          Dst:             sspi_gss_oid_compare
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:192,11'
          Dst:             sspi_gss_oid_compare
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:194,11'
          Dst:             sspi_gss_oid_compare
    - functionName:    sspi_gss_oid_compare
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Negotiate/../sspi_gss.h'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 78
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          70
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - memcmp
        - winpr_int_assert
      functionUses:    13
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Negotiate/../sspi_gss.h:75,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/../sspi_gss.h:76,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/../sspi_gss.h:78,38'
          Dst:             memcmp
    - functionName:    negotiate_mic_exchange
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Negotiate/negotiate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 619
      functionLinenumberEnd: 679
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         60
      ICount:          285
      EdgeCount:       68
      CyclomaticComplexity: 10
      functionsReached:
        - ntlm_reset_cipher_state
        - sspi_SecureHandleGetPackageId
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:624,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:625,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:626,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:627,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:628,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:631,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:668,33'
          Dst:             sspi_SecureHandleGetPackageId
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:674,8'
          Dst:             ntlm_reset_cipher_state
    - functionName:    negotiate_ContextNew
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Negotiate/negotiate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 149
      functionLinenumberEnd: 171
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          82
      EdgeCount:       20
      CyclomaticComplexity: 5
      functionsReached:
        - calloc
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:152,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:154,12'
          Dst:             calloc
    - functionName:    negotiate_FindCredential
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Negotiate/negotiate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 221
      functionLinenumberEnd: 240
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          86
      EdgeCount:       24
      CyclomaticComplexity: 6
      functionsReached:
        - winpr_int_assert
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:222,2'
          Dst:             winpr_int_assert
    - functionName:    negotiate_GetMechByOID
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Negotiate/negotiate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 201
      functionLinenumberEnd: 218
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          82
      EdgeCount:       22
      CyclomaticComplexity: 5
      functionsReached:
        - sspi_gss_oid_compare
        - winpr_int_assert
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:202,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:206,6'
          Dst:             sspi_gss_oid_compare
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:214,7'
          Dst:             sspi_gss_oid_compare
    - functionName:    negotiate_read_neg_token
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Negotiate/negotiate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 480
      functionLinenumberEnd: 615
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         100
      ICount:          492
      EdgeCount:       122
      CyclomaticComplexity: 24
      functionsReached:
        - Stream_Buffer
        - Stream_Length
        - WLog_Print_dbg_tag
        - WinPrAsn1DecGetStream
        - WinPrAsn1DecPeekTag
        - WinPrAsn1DecPeekTagAndLen
        - WinPrAsn1DecReadApp
        - WinPrAsn1DecReadContextualSequence
        - WinPrAsn1DecReadContextualTag
        - WinPrAsn1DecReadEnumerated
        - WinPrAsn1DecReadOID
        - WinPrAsn1DecReadOctetString
        - WinPrAsn1Decoder_InitMem
        - WinPrAsn1Decoder_init
        - negotiate_mech_name
        - sspi_gss_oid_compare
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/sspi/Negotiate/negotiate.c:531,3'
          Branch Sides:    []
        - Branch String:   'winpr/libwinpr/sspi/Negotiate/negotiate.c:552,6'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:481,25'
          Dst:             WinPrAsn1Decoder_init
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:482,26'
          Dst:             WinPrAsn1Decoder_init
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:490,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:491,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:493,2'
          Dst:             WinPrAsn1Decoder_InitMem
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:495,7'
          Dst:             WinPrAsn1DecPeekTag
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:501,8'
          Dst:             WinPrAsn1DecReadApp
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:506,8'
          Dst:             WinPrAsn1DecReadOID
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:509,8'
          Dst:             sspi_gss_oid_compare
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:513,8'
          Dst:             WinPrAsn1DecReadContextualSequence
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:519,12'
          Dst:             WinPrAsn1DecReadContextualSequence
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:523,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:528,8'
          Dst:             WinPrAsn1DecReadContextualTag
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:537,18'
          Dst:             WinPrAsn1DecGetStream
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:539,26'
          Dst:             Stream_Length
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:543,34'
          Dst:             Stream_Buffer
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:544,6'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:550,11'
          Dst:             WinPrAsn1DecReadEnumerated
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:561,8'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:565,24'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:565,24'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:566,6'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:573,11'
          Dst:             WinPrAsn1DecPeekTagAndLen
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:575,6'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:580,11'
          Dst:             WinPrAsn1DecReadOID
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:582,6'
          Dst:             negotiate_mech_name
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:582,6'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:588,10'
          Dst:             WinPrAsn1DecReadOctetString
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:595,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:599,10'
          Dst:             WinPrAsn1DecReadOctetString
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:606,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:609,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:612,11'
          Dst:             WinPrAsn1DecPeekTag
    - functionName:    WinPrAsn1Decoder_init
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/asn1.h'
      linkageType:     InternalLinkage
      functionLinenumber: 78
      functionLinenumberEnd: 81
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_Init
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/asn1.h:79,25'
          Dst:             Stream_Init
    - functionName:    guessMech
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Negotiate/negotiate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 993
      functionLinenumberEnd: 1025
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          115
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - WinPrAsn1DecReadApp
        - WinPrAsn1DecReadOID
        - WinPrAsn1Decoder_InitMem
        - WinPrAsn1Decoder_init
        - negotiate_GetMechByOID
        - sspi_gss_oid_compare
        - strncmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:994,29'
          Dst:             WinPrAsn1Decoder_init
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:995,32'
          Dst:             WinPrAsn1Decoder_init
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1002,37'
          Dst:             strncmp
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1005,10'
          Dst:             negotiate_GetMechByOID
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1009,2'
          Dst:             WinPrAsn1Decoder_InitMem
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1012,7'
          Dst:             WinPrAsn1DecReadApp
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1015,7'
          Dst:             WinPrAsn1DecReadOID
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1018,6'
          Dst:             sspi_gss_oid_compare
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1024,9'
          Dst:             negotiate_GetMechByOID
    - functionName:    NEGOTIATE_CONTEXT_init
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Negotiate/negotiate.h'
      linkageType:     InternalLinkage
      functionLinenumber: 51
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    negotiate_get_dword
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Negotiate/negotiate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 243
      functionLinenumberEnd: 256
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          56
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - RegQueryValueExA
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:247,12'
          Dst:             RegQueryValueExA
    - functionName:    negotiate_get_config_from_auth_package_list
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Negotiate/negotiate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 260
      functionLinenumberEnd: 317
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          152
      EdgeCount:       35
      CyclomaticComplexity: 10
      functionsReached:
        - WLog_Print_dbg_tag
        - _stricmp
        - sspi_CopyAuthPackageListA
        - strtok_s
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:265,7'
          Dst:             sspi_CopyAuthPackageListA
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:268,18'
          Dst:             strtok_s
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:281,7'
          Dst:             _stricmp
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:285,12'
          Dst:             _stricmp
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:289,12'
          Dst:             _stricmp
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:293,12'
          Dst:             _stricmp
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:301,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:307,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:310,13'
          Dst:             strtok_s
    - functionName:    negotiate_get_config
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Negotiate/negotiate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 320
      functionLinenumberEnd: 373
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         39
      ICount:          167
      EdgeCount:       45
      CyclomaticComplexity: 8
      functionsReached:
        - RegCloseKey
        - RegOpenKeyExA
        - negotiate_get_config_from_auth_package_list
        - negotiate_get_dword
        - winpr_getApplicatonDetailsRegKey
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:323,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:324,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:325,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:340,6'
          Dst:             negotiate_get_config_from_auth_package_list
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:346,15'
          Dst:             winpr_getApplicatonDetailsRegKey
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:350,8'
          Dst:             RegOpenKeyExA
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:356,9'
          Dst:             negotiate_get_dword
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:359,9'
          Dst:             negotiate_get_dword
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:363,7'
          Dst:             negotiate_get_dword
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:367,3'
          Dst:             RegCloseKey
    - functionName:    checkMechCredValid
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Negotiate/negotiate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1479
      functionLinenumberEnd: 1511
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         39
      ICount:          161
      EdgeCount:       46
      CyclomaticComplexity: 9
      functionsReached:
        - WLog_Print_dbg_tag
        - negotiate_get_config
        - sspi_gss_oid_compare
        - strncmp
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1480,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1481,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1482,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1487,7'
          Dst:             negotiate_get_config
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1489,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1493,19'
          Dst:             sspi_gss_oid_compare
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1495,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1499,14'
          Dst:             sspi_gss_oid_compare
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1501,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1505,15'
          Dst:             strncmp
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1507,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    NEGOTIATE_init
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Negotiate/negotiate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1783
      functionLinenumberEnd: 1789
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - InitializeConstWCharFromUtf8
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1784,2'
          Dst:             InitializeConstWCharFromUtf8
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1786,2'
          Dst:             InitializeConstWCharFromUtf8
    - functionName:    negotiate_SetCredentialsAttributesW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Negotiate/negotiate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1410
      functionLinenumberEnd: 1437
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         37
      ICount:          168
      EdgeCount:       40
      CyclomaticComplexity: 5
      functionsReached:
        - GetSecurityStatusString
        - WLog_Print_dbg_tag
        - sspi_SecureHandleGetLowerPointer
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1412,20'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1421,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1422,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1423,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1424,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1431,4'
          Dst:             GetSecurityStatusString
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1431,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    negotiate_SetContextAttributesW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Negotiate/negotiate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1372
      functionLinenumberEnd: 1386
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          119
      EdgeCount:       28
      CyclomaticComplexity: 4
      functionsReached:
        - sspi_SecureHandleGetLowerPointer
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1373,51'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1378,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1379,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1380,2'
          Dst:             winpr_int_assert
    - functionName:    negotiate_QueryContextAttributesW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Negotiate/negotiate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1335
      functionLinenumberEnd: 1349
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          116
      EdgeCount:       28
      CyclomaticComplexity: 4
      functionsReached:
        - sspi_SecureHandleGetLowerPointer
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1336,51'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1341,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1342,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1343,2'
          Dst:             winpr_int_assert
    - functionName:    negotiate_InitializeSecurityContextW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Negotiate/negotiate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 685
      functionLinenumberEnd: 968
      functionDepth:   0
      returnType:      int
      argCount:        12
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
        - int
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         184
      ICount:          1106
      EdgeCount:       239
      CyclomaticComplexity: 57
      functionsReached:
        - IsSecurityStatusError
        - NEGOTIATE_CONTEXT_init
        - Stream_StaticInit
        - WLog_Print_dbg_tag
        - WinPrAsn1EncEndContainer
        - WinPrAsn1EncOID
        - WinPrAsn1EncSeqContainer
        - WinPrAsn1EncToStream
        - WinPrAsn1Encoder_Free
        - WinPrAsn1Encoder_New
        - negotiate_ContextNew
        - negotiate_FindCredential
        - negotiate_GetMechByOID
        - negotiate_mech_name
        - negotiate_mic_exchange
        - negotiate_read_neg_token
        - negotiate_write_neg_token
        - sspi_FindSecBuffer
        - sspi_SecureHandleGetLowerPointer
        - sspi_SecureHandleSetLowerPointer
        - sspi_SecureHandleSetPackageId
        - sspi_gss_oid_compare
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/sspi/Negotiate/negotiate.c:876,4'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:687,35'
          Dst:             NEGOTIATE_CONTEXT_init
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:708,10'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:714,12'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:718,18'
          Dst:             sspi_FindSecBuffer
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:719,21'
          Dst:             sspi_FindSecBuffer
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:722,19'
          Dst:             sspi_FindSecBuffer
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:726,9'
          Dst:             WinPrAsn1Encoder_New
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:730,8'
          Dst:             WinPrAsn1EncSeqContainer
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:737,4'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:738,4'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:742,5'
          Dst:             negotiate_mech_name
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:742,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:758,5'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:765,9'
          Dst:             IsSecurityStatusError
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:769,7'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:779,9'
          Dst:             WinPrAsn1EncOID
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:781,4'
          Dst:             negotiate_mech_name
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:781,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:793,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:799,22'
          Dst:             WinPrAsn1EncEndContainer
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:800,4'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:805,13'
          Dst:             negotiate_ContextNew
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:809,4'
          Dst:             WinPrAsn1Encoder_Free
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:813,3'
          Dst:             sspi_SecureHandleSetPackageId
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:814,3'
          Dst:             sspi_SecureHandleSetLowerPointer
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:823,3'
          Dst:             Stream_StaticInit
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:824,8'
          Dst:             WinPrAsn1EncToStream
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:840,14'
          Dst:             negotiate_FindCredential
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:849,8'
          Dst:             negotiate_read_neg_token
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:854,8'
          Dst:             sspi_gss_oid_compare
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:856,11'
          Dst:             negotiate_GetMechByOID
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:861,15'
          Dst:             negotiate_FindCredential
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:899,4'
          Dst:             negotiate_mech_name
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:899,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:918,8'
          Dst:             IsSecurityStatusError
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:944,13'
          Dst:             negotiate_mic_exchange
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:962,7'
          Dst:             negotiate_write_neg_token
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:966,2'
          Dst:             WinPrAsn1Encoder_Free
    - functionName:    negotiate_AcquireCredentialsHandleW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Negotiate/negotiate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1517
      functionLinenumberEnd: 1549
      functionDepth:   0
      returnType:      int
      argCount:        9
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          157
      EdgeCount:       30
      CyclomaticComplexity: 6
      functionsReached:
        - GetSecurityStatusString
        - WLog_Print_dbg_tag
        - calloc
        - checkMechCredValid
        - sspi_SecureHandleSetLowerPointer
        - sspi_SecureHandleSetPackageId
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1518,20'
          Dst:             calloc
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1529,8'
          Dst:             checkMechCredValid
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1532,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1533,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1539,4'
          Dst:             GetSecurityStatusString
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1539,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1546,2'
          Dst:             sspi_SecureHandleSetLowerPointer
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1547,2'
          Dst:             sspi_SecureHandleSetPackageId
    - functionName:    negotiate_QueryCredentialsAttributesW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Negotiate/negotiate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1593
      functionLinenumberEnd: 1595
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1594,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    negotiate_SetCredentialsAttributesA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Negotiate/negotiate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1442
      functionLinenumberEnd: 1475
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         39
      ICount:          175
      EdgeCount:       43
      CyclomaticComplexity: 6
      functionsReached:
        - GetSecurityStatusString
        - WLog_Print_dbg_tag
        - sspi_SecureHandleGetLowerPointer
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1445,20'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1457,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1458,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1459,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1460,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1469,4'
          Dst:             GetSecurityStatusString
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1469,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    negotiate_SetContextAttributesA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Negotiate/negotiate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1391
      functionLinenumberEnd: 1405
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          119
      EdgeCount:       28
      CyclomaticComplexity: 4
      functionsReached:
        - sspi_SecureHandleGetLowerPointer
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1392,51'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1397,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1398,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1399,2'
          Dst:             winpr_int_assert
    - functionName:    negotiate_DecryptMessage
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Negotiate/negotiate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1655
      functionLinenumberEnd: 1672
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          136
      EdgeCount:       32
      CyclomaticComplexity: 5
      functionsReached:
        - sspi_SecureHandleGetLowerPointer
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1656,51'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1664,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1665,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1666,2'
          Dst:             winpr_int_assert
    - functionName:    negotiate_EncryptMessage
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Negotiate/negotiate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1633
      functionLinenumberEnd: 1650
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          136
      EdgeCount:       32
      CyclomaticComplexity: 5
      functionsReached:
        - sspi_SecureHandleGetLowerPointer
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1634,51'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1642,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1643,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1644,2'
          Dst:             winpr_int_assert
    - functionName:    negotiate_VerifySignature
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Negotiate/negotiate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1699
      functionLinenumberEnd: 1716
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          136
      EdgeCount:       32
      CyclomaticComplexity: 5
      functionsReached:
        - sspi_SecureHandleGetLowerPointer
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1700,51'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1708,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1709,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1710,2'
          Dst:             winpr_int_assert
    - functionName:    negotiate_MakeSignature
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Negotiate/negotiate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1677
      functionLinenumberEnd: 1694
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          136
      EdgeCount:       32
      CyclomaticComplexity: 5
      functionsReached:
        - sspi_SecureHandleGetLowerPointer
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1678,51'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1686,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1687,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1688,2'
          Dst:             winpr_int_assert
    - functionName:    negotiate_RevertSecurityContext
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Negotiate/negotiate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1329
      functionLinenumberEnd: 1330
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          6
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    negotiate_ImpersonateSecurityContext
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Negotiate/negotiate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1323
      functionLinenumberEnd: 1324
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          6
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    negotiate_QueryContextAttributesA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Negotiate/negotiate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1353
      functionLinenumberEnd: 1367
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          116
      EdgeCount:       28
      CyclomaticComplexity: 4
      functionsReached:
        - sspi_SecureHandleGetLowerPointer
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1354,51'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1359,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1360,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1361,2'
          Dst:             winpr_int_assert
    - functionName:    negotiate_DeleteSecurityContext
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Negotiate/negotiate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1300
      functionLinenumberEnd: 1319
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         27
      ICount:          118
      EdgeCount:       29
      CyclomaticComplexity: 4
      functionsReached:
        - negotiate_ContextFree
        - sspi_SecureHandleGetLowerPointer
        - sspi_SecureHandleInvalidate
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1302,51'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1303,2'
          Dst:             sspi_SecureHandleInvalidate
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1309,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1310,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1311,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1317,2'
          Dst:             negotiate_ContextFree
    - functionName:    negotiate_CompleteAuthToken
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Negotiate/negotiate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1282
      functionLinenumberEnd: 1297
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         27
      ICount:          118
      EdgeCount:       29
      CyclomaticComplexity: 4
      functionsReached:
        - sspi_SecureHandleGetLowerPointer
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1285,32'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1290,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1291,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1292,2'
          Dst:             winpr_int_assert
    - functionName:    negotiate_AcceptSecurityContext
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Negotiate/negotiate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1031
      functionLinenumberEnd: 1278
      functionDepth:   0
      returnType:      int
      argCount:        9
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         157
      ICount:          954
      EdgeCount:       217
      CyclomaticComplexity: 62
      functionsReached:
        - IsSecurityStatusError
        - NEGOTIATE_CONTEXT_init
        - WLog_Print_dbg_tag
        - WinPrAsn1DecPeekTag
        - WinPrAsn1DecReadOID
        - WinPrAsn1DecReadSequence
        - WinPrAsn1Decoder_InitMem
        - WinPrAsn1Decoder_init
        - guessMech
        - negotiate_ContextNew
        - negotiate_FindCredential
        - negotiate_GetMechByOID
        - negotiate_mech_name
        - negotiate_mic_exchange
        - negotiate_read_neg_token
        - negotiate_write_neg_token
        - sspi_FindSecBuffer
        - sspi_SecureHandleGetLowerPointer
        - sspi_SecureHandleSetLowerPointer
        - sspi_SecureHandleSetPackageId
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1033,35'
          Dst:             NEGOTIATE_CONTEXT_init
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1043,25'
          Dst:             WinPrAsn1Decoder_init
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1044,26'
          Dst:             WinPrAsn1Decoder_init
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1052,10'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1061,12'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1063,17'
          Dst:             sspi_FindSecBuffer
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1065,19'
          Dst:             sspi_FindSecBuffer
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1069,23'
          Dst:             guessMech
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1073,3'
          Dst:             negotiate_mech_name
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1073,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1078,9'
          Dst:             negotiate_read_neg_token
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1089,4'
          Dst:             WinPrAsn1Decoder_InitMem
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1092,9'
          Dst:             WinPrAsn1DecReadSequence
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1099,10'
          Dst:             WinPrAsn1DecReadOID
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1102,25'
          Dst:             negotiate_GetMechByOID
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1108,6'
          Dst:             negotiate_mech_name
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1108,6'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1116,15'
          Dst:             negotiate_FindCredential
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1127,7'
          Dst:             IsSecurityStatusError
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1144,32'
          Dst:             WinPrAsn1DecPeekTag
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1147,9'
          Dst:             WinPrAsn1DecReadOID
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1150,24'
          Dst:             negotiate_GetMechByOID
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1151,4'
          Dst:             negotiate_mech_name
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1151,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1157,30'
          Dst:             negotiate_FindCredential
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1164,13'
          Dst:             negotiate_ContextNew
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1167,9'
          Dst:             IsSecurityStatusError
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1172,3'
          Dst:             sspi_SecureHandleSetPackageId
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1173,3'
          Dst:             sspi_SecureHandleSetLowerPointer
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1197,3'
          Dst:             negotiate_mech_name
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1197,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1201,14'
          Dst:             negotiate_FindCredential
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1212,8'
          Dst:             negotiate_read_neg_token
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1229,30'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1236,8'
          Dst:             IsSecurityStatusError
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1254,13'
          Dst:             negotiate_mic_exchange
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1274,7'
          Dst:             negotiate_write_neg_token
    - functionName:    negotiate_InitializeSecurityContextA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Negotiate/negotiate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 974
      functionLinenumberEnd: 990
      functionDepth:   0
      returnType:      int
      argCount:        12
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
        - int
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          82
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ConvertUtf8ToWCharAlloc
        - negotiate_InitializeSecurityContextW
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:980,20'
          Dst:             ConvertUtf8ToWCharAlloc
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:985,11'
          Dst:             negotiate_InitializeSecurityContextW
    - functionName:    negotiate_FreeCredentialsHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Negotiate/negotiate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1607
      functionLinenumberEnd: 1628
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         37
      ICount:          155
      EdgeCount:       40
      CyclomaticComplexity: 5
      functionsReached:
        - GetSecurityStatusString
        - WLog_Print_dbg_tag
        - sspi_SecureHandleGetLowerPointer
        - sspi_SecureHandleInvalidate
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1608,20'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1609,2'
          Dst:             sspi_SecureHandleInvalidate
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1617,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1618,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1619,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1620,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1623,4'
          Dst:             GetSecurityStatusString
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1623,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    negotiate_AcquireCredentialsHandleA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Negotiate/negotiate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1555
      functionLinenumberEnd: 1588
      functionDepth:   0
      returnType:      int
      argCount:        9
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          157
      EdgeCount:       30
      CyclomaticComplexity: 6
      functionsReached:
        - GetSecurityStatusString
        - WLog_Print_dbg_tag
        - calloc
        - checkMechCredValid
        - sspi_SecureHandleSetLowerPointer
        - sspi_SecureHandleSetPackageId
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1556,20'
          Dst:             calloc
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1568,8'
          Dst:             checkMechCredValid
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1571,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1572,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1578,4'
          Dst:             GetSecurityStatusString
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1578,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1585,2'
          Dst:             sspi_SecureHandleSetLowerPointer
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1586,2'
          Dst:             sspi_SecureHandleSetPackageId
    - functionName:    negotiate_QueryCredentialsAttributesA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Negotiate/negotiate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1601
      functionLinenumberEnd: 1603
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Negotiate/negotiate.c:1602,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    schannel_InitializeSecurityContextX
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Schannel/schannel.c'
      linkageType:     InternalLinkage
      functionLinenumber: 217
      functionLinenumberEnd: 245
      functionDepth:   0
      returnType:      int
      argCount:        13
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
        - int
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          132
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - schannel_ContextNew
        - schannel_openssl_client_init
        - schannel_openssl_client_process_tokens
        - sspi_SecureHandleGetLowerPointer
        - sspi_SecureHandleSetLowerPointer
        - sspi_SecureHandleSetUpperPointer
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel.c:226,12'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel.c:230,13'
          Dst:             schannel_ContextNew
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel.c:235,40'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel.c:238,3'
          Dst:             sspi_SecureHandleSetLowerPointer
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel.c:239,3'
          Dst:             sspi_SecureHandleSetUpperPointer
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel.c:240,3'
          Dst:             schannel_openssl_client_init
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel.c:243,11'
          Dst:             schannel_openssl_client_process_tokens
    - functionName:    schannel_ContextNew
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Schannel/schannel.c'
      linkageType:     InternalLinkage
      functionLinenumber: 37
      functionLinenumberEnd: 53
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         8
      ICount:          47
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - calloc
        - schannel_openssl_new
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel.c:39,31'
          Dst:             calloc
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel.c:44,21'
          Dst:             schannel_openssl_new
    - functionName:    schannel_CredentialsFree
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Schannel/schannel.c'
      linkageType:     InternalLinkage
      functionLinenumber: 72
      functionLinenumberEnd: 74
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 323
      functionLinenumberEnd: 335
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          65
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintTextMessageVA
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:326,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:328,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:332,4'
          Dst:             WLog_PrintTextMessageVA
    - functionName:    schannel_CredentialsNew
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Schannel/schannel.c'
      linkageType:     InternalLinkage
      functionLinenumber: 65
      functionLinenumberEnd: 68
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - calloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel.c:67,39'
          Dst:             calloc
    - functionName:    schannel_AcquireCredentialsHandleX
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Schannel/schannel.c'
      linkageType:     InternalLinkage
      functionLinenumber: 133
      functionLinenumberEnd: 167
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          125
      EdgeCount:       28
      CyclomaticComplexity: 7
      functionsReached:
        - WLog_Print_dbg_tag
        - schannel_CredentialsNew
        - sspi_SecureHandleSetLowerPointer
        - sspi_SecureHandleSetUpperPointer
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel.c:134,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel.c:138,39'
          Dst:             schannel_CredentialsNew
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel.c:148,3'
          Dst:             sspi_SecureHandleSetLowerPointer
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel.c:149,3'
          Dst:             sspi_SecureHandleSetUpperPointer
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel.c:154,39'
          Dst:             schannel_CredentialsNew
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel.c:159,3'
          Dst:             sspi_SecureHandleSetLowerPointer
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel.c:160,3'
          Dst:             sspi_SecureHandleSetUpperPointer
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel.c:164,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    SCHANNEL_init
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Schannel/schannel.c'
      linkageType:     InternalLinkage
      functionLinenumber: 522
      functionLinenumberEnd: 527
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - InitializeConstWCharFromUtf8
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel.c:523,2'
          Dst:             InitializeConstWCharFromUtf8
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel.c:525,2'
          Dst:             InitializeConstWCharFromUtf8
    - functionName:    schannel_AcceptSecurityContextW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Schannel/schannel.c'
      linkageType:     InternalLinkage
      functionLinenumber: 316
      functionLinenumberEnd: 341
      functionDepth:   0
      returnType:      int
      argCount:        9
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          113
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - schannel_ContextNew
        - schannel_openssl_server_init
        - schannel_openssl_server_process_tokens
        - sspi_SecureHandleGetLowerPointer
        - sspi_SecureHandleSetLowerPointer
        - sspi_SecureHandleSetUpperPointer
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel.c:324,31'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel.c:328,13'
          Dst:             schannel_ContextNew
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel.c:334,3'
          Dst:             sspi_SecureHandleSetLowerPointer
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel.c:335,3'
          Dst:             sspi_SecureHandleSetUpperPointer
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel.c:336,3'
          Dst:             schannel_openssl_server_init
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel.c:339,11'
          Dst:             schannel_openssl_server_process_tokens
    - functionName:    schannel_InitializeSecurityContextW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Schannel/schannel.c'
      linkageType:     InternalLinkage
      functionLinenumber: 251
      functionLinenumberEnd: 254
      functionDepth:   0
      returnType:      int
      argCount:        12
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
        - int
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          48
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - schannel_InitializeSecurityContextX
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel.c:252,9'
          Dst:             schannel_InitializeSecurityContextX
    - functionName:    schannel_AcquireCredentialsHandleW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Schannel/schannel.c'
      linkageType:     InternalLinkage
      functionLinenumber: 188
      functionLinenumberEnd: 193
      functionDepth:   0
      returnType:      int
      argCount:        9
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          39
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - schannel_AcquireCredentialsHandleX
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel.c:191,9'
          Dst:             schannel_AcquireCredentialsHandleX
    - functionName:    schannel_QueryCredentialsAttributesW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Schannel/schannel.c'
      linkageType:     InternalLinkage
      functionLinenumber: 95
      functionLinenumberEnd: 120
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          79
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel.c:118,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    schannel_DecryptMessage
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Schannel/schannel.c'
      linkageType:     InternalLinkage
      functionLinenumber: 424
      functionLinenumberEnd: 434
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - schannel_openssl_decrypt_message
        - sspi_SecureHandleGetLowerPointer
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel.c:427,31'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel.c:432,11'
          Dst:             schannel_openssl_decrypt_message
    - functionName:    schannel_EncryptMessage
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Schannel/schannel.c'
      linkageType:     InternalLinkage
      functionLinenumber: 408
      functionLinenumberEnd: 418
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - schannel_openssl_encrypt_message
        - sspi_SecureHandleGetLowerPointer
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel.c:411,31'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel.c:416,11'
          Dst:             schannel_openssl_encrypt_message
    - functionName:    schannel_VerifySignature
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Schannel/schannel.c'
      linkageType:     InternalLinkage
      functionLinenumber: 400
      functionLinenumberEnd: 401
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    schannel_MakeSignature
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Schannel/schannel.c'
      linkageType:     InternalLinkage
      functionLinenumber: 392
      functionLinenumberEnd: 393
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    schannel_QueryContextAttributes
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Schannel/schannel.c'
      linkageType:     InternalLinkage
      functionLinenumber: 357
      functionLinenumberEnd: 386
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          94
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel.c:384,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    schannel_DeleteSecurityContext
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Schannel/schannel.c'
      linkageType:     InternalLinkage
      functionLinenumber: 344
      functionLinenumberEnd: 353
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - schannel_ContextFree
        - sspi_SecureHandleGetLowerPointer
        - sspi_SecureHandleInvalidate
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel.c:345,49'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel.c:346,2'
          Dst:             sspi_SecureHandleInvalidate
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel.c:351,2'
          Dst:             schannel_ContextFree
    - functionName:    schannel_ContextFree
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Schannel/schannel.c'
      linkageType:     InternalLinkage
      functionLinenumber: 56
      functionLinenumberEnd: 62
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          30
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - schannel_openssl_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel.c:60,2'
          Dst:             schannel_openssl_free
    - functionName:    schannel_AcceptSecurityContextA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Schannel/schannel.c'
      linkageType:     InternalLinkage
      functionLinenumber: 284
      functionLinenumberEnd: 309
      functionDepth:   0
      returnType:      int
      argCount:        9
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          113
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - schannel_ContextNew
        - schannel_openssl_server_init
        - schannel_openssl_server_process_tokens
        - sspi_SecureHandleGetLowerPointer
        - sspi_SecureHandleSetLowerPointer
        - sspi_SecureHandleSetUpperPointer
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel.c:292,31'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel.c:296,13'
          Dst:             schannel_ContextNew
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel.c:302,3'
          Dst:             sspi_SecureHandleSetLowerPointer
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel.c:303,3'
          Dst:             sspi_SecureHandleSetUpperPointer
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel.c:304,3'
          Dst:             schannel_openssl_server_init
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel.c:307,11'
          Dst:             schannel_openssl_server_process_tokens
    - functionName:    schannel_InitializeSecurityContextA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Schannel/schannel.c'
      linkageType:     InternalLinkage
      functionLinenumber: 261
      functionLinenumberEnd: 277
      functionDepth:   0
      returnType:      int
      argCount:        12
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
        - int
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          82
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ConvertUtf8ToWCharAlloc
        - schannel_InitializeSecurityContextX
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel.c:267,20'
          Dst:             ConvertUtf8ToWCharAlloc
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel.c:272,11'
          Dst:             schannel_InitializeSecurityContextX
    - functionName:    schannel_FreeCredentialsHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Schannel/schannel.c'
      linkageType:     InternalLinkage
      functionLinenumber: 197
      functionLinenumberEnd: 209
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          44
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - schannel_CredentialsFree
        - sspi_SecureHandleGetLowerPointer
        - sspi_SecureHandleInvalidate
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel.c:202,29'
          Dst:             sspi_SecureHandleGetLowerPointer
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel.c:203,2'
          Dst:             sspi_SecureHandleInvalidate
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel.c:207,2'
          Dst:             schannel_CredentialsFree
    - functionName:    schannel_AcquireCredentialsHandleA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Schannel/schannel.c'
      linkageType:     InternalLinkage
      functionLinenumber: 174
      functionLinenumberEnd: 179
      functionDepth:   0
      returnType:      int
      argCount:        9
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          39
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - schannel_AcquireCredentialsHandleX
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel.c:177,9'
          Dst:             schannel_AcquireCredentialsHandleX
    - functionName:    schannel_QueryCredentialsAttributesA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Schannel/schannel.c'
      linkageType:     InternalLinkage
      functionLinenumber: 125
      functionLinenumberEnd: 126
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - schannel_QueryCredentialsAttributesW
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel.c:126,9'
          Dst:             schannel_QueryCredentialsAttributesW
    - functionName:    Stream_Seek
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 157
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          51
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:158,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:159,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:159,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:
        - ''
      BBCount:         13
      ICount:          66
      EdgeCount:       14
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/endian.h:74,3'
          Dst:             winpr_int_assert
    - functionName:    Stream_Init
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 63
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    Stream_Pointer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1312
      functionLinenumberEnd: 1314
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          31
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1313,3'
          Dst:             winpr_int_assert
    - functionName:    stream_read_u16_be
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 208
      functionLinenumberEnd: 216
      functionDepth:   0
      returnType:      short
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          64
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_GetRemainingLength
        - Stream_Seek
        - winpr_Data_Get_UINT16_BE
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:210,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:211,3'
          Dst:             Stream_GetRemainingLength
        - Src:             'winpr/include/winpr/stream.h:211,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:213,20'
          Dst:             winpr_Data_Get_UINT16_BE
        - Src:             'winpr/include/winpr/stream.h:215,4'
          Dst:             Stream_Seek
    - functionName:    Stream_Length
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1345
      functionLinenumberEnd: 1347
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          31
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1346,3'
          Dst:             winpr_int_assert
    - functionName:    WinPrAsn1Decoder_init
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/asn1.h'
      linkageType:     InternalLinkage
      functionLinenumber: 78
      functionLinenumberEnd: 81
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_Init
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/asn1.h:79,25'
          Dst:             Stream_Init
    - functionName:    sspi_gss_unwrap_token
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_gss.c'
      linkageType:     InternalLinkage
      functionLinenumber: 88
      functionLinenumberEnd: 120
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         36
      ICount:          148
      EdgeCount:       41
      CyclomaticComplexity: 7
      functionsReached:
        - Stream_GetRemainingLength
        - Stream_Length
        - Stream_Pointer
        - WinPrAsn1DecGetStream
        - WinPrAsn1DecReadApp
        - WinPrAsn1DecReadOID
        - WinPrAsn1Decoder_InitMem
        - WinPrAsn1Decoder_init
        - stream_read_u16_be
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_gss.c:89,25'
          Dst:             WinPrAsn1Decoder_init
        - Src:             'winpr/libwinpr/sspi/sspi_gss.c:90,26'
          Dst:             WinPrAsn1Decoder_init
        - Src:             'winpr/libwinpr/sspi/sspi_gss.c:95,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/sspi_gss.c:96,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/sspi_gss.c:97,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/sspi_gss.c:99,2'
          Dst:             WinPrAsn1Decoder_InitMem
        - Src:             'winpr/libwinpr/sspi/sspi_gss.c:101,7'
          Dst:             WinPrAsn1DecReadApp
        - Src:             'winpr/libwinpr/sspi/sspi_gss.c:104,7'
          Dst:             WinPrAsn1DecReadOID
        - Src:             'winpr/libwinpr/sspi/sspi_gss.c:107,12'
          Dst:             WinPrAsn1DecGetStream
        - Src:             'winpr/libwinpr/sspi/sspi_gss.c:110,6'
          Dst:             Stream_Length
        - Src:             'winpr/libwinpr/sspi/sspi_gss.c:114,3'
          Dst:             stream_read_u16_be
        - Src:             'winpr/libwinpr/sspi/sspi_gss.c:116,16'
          Dst:             Stream_Pointer
        - Src:             'winpr/libwinpr/sspi/sspi_gss.c:117,24'
          Dst:             Stream_GetRemainingLength
    - 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:
        - ''
        - ''
      BBCount:         9
      ICount:          48
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/endian.h:244,3'
          Dst:             winpr_int_assert
    - functionName:    sspi_gss_wrap_token
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/sspi_gss.c'
      linkageType:     InternalLinkage
      functionLinenumber: 32
      functionLinenumberEnd: 84
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - short
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         43
      ICount:          192
      EdgeCount:       52
      CyclomaticComplexity: 11
      functionsReached:
        - Stream_StaticInit
        - WinPrAsn1EncAppContainer
        - WinPrAsn1EncEndContainer
        - WinPrAsn1EncOID
        - WinPrAsn1EncRawContent
        - WinPrAsn1EncStreamSize
        - WinPrAsn1EncToStream
        - WinPrAsn1Encoder_Free
        - WinPrAsn1Encoder_New
        - winpr_Data_Write_UINT16_BE
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/sspi_gss.c:40,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/sspi_gss.c:41,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/sspi_gss.c:42,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/sspi_gss.c:44,2'
          Dst:             winpr_Data_Write_UINT16_BE
        - Src:             'winpr/libwinpr/sspi/sspi_gss.c:46,8'
          Dst:             WinPrAsn1Encoder_New
        - Src:             'winpr/libwinpr/sspi/sspi_gss.c:51,7'
          Dst:             WinPrAsn1EncAppContainer
        - Src:             'winpr/libwinpr/sspi/sspi_gss.c:55,7'
          Dst:             WinPrAsn1EncOID
        - Src:             'winpr/libwinpr/sspi/sspi_gss.c:59,7'
          Dst:             WinPrAsn1EncRawContent
        - Src:             'winpr/libwinpr/sspi/sspi_gss.c:65,7'
          Dst:             WinPrAsn1EncRawContent
        - Src:             'winpr/libwinpr/sspi/sspi_gss.c:68,7'
          Dst:             WinPrAsn1EncEndContainer
        - Src:             'winpr/libwinpr/sspi/sspi_gss.c:71,7'
          Dst:             WinPrAsn1EncStreamSize
        - Src:             'winpr/libwinpr/sspi/sspi_gss.c:74,2'
          Dst:             Stream_StaticInit
        - Src:             'winpr/libwinpr/sspi/sspi_gss.c:75,6'
          Dst:             WinPrAsn1EncToStream
        - Src:             'winpr/libwinpr/sspi/sspi_gss.c:82,2'
          Dst:             WinPrAsn1Encoder_Free
    - 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:
        - ''
        - ''
        - ''
        - ''
      BBCount:         4
      ICount:          35
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      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:
        - ''
        - ''
        - ''
        - ''
      BBCount:         4
      ICount:          33
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - 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:
        - ''
      BBCount:         3
      ICount:          15
      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:
        - ''
      BBCount:         43
      ICount:          217
      EdgeCount:       84
      CyclomaticComplexity: 43
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/nt/nt.c:68,2'
          Branch Sides:    []
      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:  []
      Callsites:
        - Src:             'winpr/libwinpr/nt/nt.c:46,2'
          Dst:             pthread_key_create
        - Src:             'winpr/libwinpr/nt/nt.c:46,2'
          Dst:             sTebDestruct
    - 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:          49
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - calloc
        - pthread_getspecific
        - pthread_once
        - pthread_setspecific
        - sTebInitOnce
      functionUses:    2
      BranchProfiles:  []
      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:    pollset_isWriteSignaled
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/pollset.c'
      linkageType:     InternalLinkage
      functionLinenumber: 274
      functionLinenumberEnd: 292
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          65
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/synch/pollset.c:275,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/synch/pollset.c:279,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 323
      functionLinenumberEnd: 335
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          65
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintTextMessageVA
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:326,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:328,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:332,4'
          Dst:             WLog_PrintTextMessageVA
    - functionName:    pollset_isReadSignaled
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/pollset.c'
      linkageType:     InternalLinkage
      functionLinenumber: 253
      functionLinenumberEnd: 271
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          65
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/synch/pollset.c:254,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/synch/pollset.c:258,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    pollset_isSignaled
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/pollset.c'
      linkageType:     InternalLinkage
      functionLinenumber: 226
      functionLinenumberEnd: 250
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          73
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/synch/pollset.c:227,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/synch/pollset.c:231,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    pollset_poll
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/pollset.c'
      linkageType:     InternalLinkage
      functionLinenumber: 125
      functionLinenumberEnd: 223
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         45
      ICount:          189
      EdgeCount:       53
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - poll
        - winpr_GetTickCount64
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/synch/pollset.c:126,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/synch/pollset.c:131,8'
          Dst:             winpr_GetTickCount64
        - Src:             'winpr/libwinpr/synch/pollset.c:147,28'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/synch/pollset.c:147,28'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/synch/pollset.c:147,9'
          Dst:             poll
        - Src:             'winpr/libwinpr/synch/pollset.c:167,7'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/synch/pollset.c:170,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: 18
      functionLinenumberEnd: 27
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          45
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pollset_add
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/pollset.c'
      linkageType:     InternalLinkage
      functionLinenumber: 89
      functionLinenumberEnd: 122
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          77
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - handle_mode_to_pollevent
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/synch/pollset.c:90,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/synch/pollset.c:99,17'
          Dst:             handle_mode_to_pollevent
    - functionName:    pollset_reset
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/pollset.c'
      linkageType:     InternalLinkage
      functionLinenumber: 77
      functionLinenumberEnd: 86
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          31
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/synch/pollset.c:78,2'
          Dst:             winpr_int_assert
    - functionName:    pollset_uninit
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/pollset.c'
      linkageType:     InternalLinkage
      functionLinenumber: 66
      functionLinenumberEnd: 74
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          43
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_int_assert
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/synch/pollset.c:67,2'
          Dst:             winpr_int_assert
    - functionName:    pollset_init
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/pollset.c'
      linkageType:     InternalLinkage
      functionLinenumber: 32
      functionLinenumberEnd: 63
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          77
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - calloc
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/synch/pollset.c:33,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/synch/pollset.c:38,18'
          Dst:             calloc
    - functionName:    LoadLibraryExX
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/library/library.c'
      linkageType:     InternalLinkage
      functionLinenumber: 410
      functionLinenumberEnd: 423
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - LoadLibraryExA
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/library/library.c:421,9'
          Dst:             LoadLibraryExA
    - functionName:    LoadLibraryExA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/library/library.c'
      linkageType:     InternalLinkage
      functionLinenumber: 159
      functionLinenumberEnd: 166
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          45
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - LoadLibraryA
        - WLog_Print_dbg_tag
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/library/library.c:161,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/library/library.c:164,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/library/library.c:166,9'
          Dst:             LoadLibraryA
    - functionName:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 323
      functionLinenumberEnd: 335
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          65
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintTextMessageVA
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:326,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:328,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:332,4'
          Dst:             WLog_PrintTextMessageVA
    - functionName:    LoadLibraryA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/library/library.c'
      linkageType:     InternalLinkage
      functionLinenumber: 111
      functionLinenumberEnd: 140
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          46
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
        - dlerror
        - dlopen
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/library/library.c:128,20'
          Dst:             dlopen
        - Src:             'winpr/libwinpr/library/library.c:133,21'
          Dst:             dlerror
        - Src:             'winpr/libwinpr/library/library.c:134,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    dlopen
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dlerror
      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:    LoadLibraryX
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/library/library.c'
      linkageType:     InternalLinkage
      functionLinenumber: 393
      functionLinenumberEnd: 405
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - LoadLibraryA
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/library/library.c:405,9'
          Dst:             LoadLibraryA
    - functionName:    module_from_proc
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/library/library.c'
      linkageType:     InternalLinkage
      functionLinenumber: 269
      functionLinenumberEnd: 292
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          89
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - SetLastError
        - readlink
        - strnlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/library/library.c:271,19'
          Dst:             readlink
        - Src:             'winpr/libwinpr/library/library.c:275,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/library/library.c:279,24'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/library/library.c:290,2'
          Dst:             SetLastError
    - functionName:    readlink
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      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:    GetModuleFileNameA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/library/library.c'
      linkageType:     InternalLinkage
      functionLinenumber: 296
      functionLinenumberEnd: 388
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - SetLastError
        - WLog_Print_dbg_tag
        - module_from_proc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/library/library.c:299,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/library/library.c:300,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/library/library.c:305,9'
          Dst:             module_from_proc
    - functionName:    GetModuleFileNameW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/library/library.c'
      linkageType:     InternalLinkage
      functionLinenumber: 231
      functionLinenumberEnd: 265
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          107
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - ConvertUtf8NToWChar
        - GetModuleFileNameA
        - SetLastError
        - calloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/library/library.c:235,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/library/library.c:239,15'
          Dst:             calloc
        - Src:             'winpr/libwinpr/library/library.c:242,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/library/library.c:245,11'
          Dst:             GetModuleFileNameA
        - Src:             'winpr/libwinpr/library/library.c:249,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/library/library.c:255,7'
          Dst:             ConvertUtf8NToWChar
        - Src:             'winpr/libwinpr/library/library.c:258,4'
          Dst:             SetLastError
    - functionName:    GetModuleHandleW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/library/library.c'
      linkageType:     InternalLinkage
      functionLinenumber: 213
      functionLinenumberEnd: 219
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ConvertWCharToUtf8Alloc
        - GetModuleHandleA
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/library/library.c:216,10'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/library/library.c:217,15'
          Dst:             GetModuleHandleA
    - functionName:    GetModuleHandleA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/library/library.c'
      linkageType:     InternalLinkage
      functionLinenumber: 208
      functionLinenumberEnd: 209
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dlopen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/library/library.c:209,9'
          Dst:             dlopen
    - functionName:    FreeLibrary
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/library/library.c'
      linkageType:     InternalLinkage
      functionLinenumber: 200
      functionLinenumberEnd: 204
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dlclose
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/library/library.c:202,11'
          Dst:             dlclose
    - functionName:    dlclose
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    GetProcAddress
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/library/library.c'
      linkageType:     InternalLinkage
      functionLinenumber: 185
      functionLinenumberEnd: 197
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_Print_dbg_tag
        - dlerror
        - dlsym
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/library/library.c:187,9'
          Dst:             dlsym
        - Src:             'winpr/libwinpr/library/library.c:192,3'
          Dst:             dlerror
        - Src:             'winpr/libwinpr/library/library.c:192,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    dlsym
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    LoadLibraryExW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/library/library.c'
      linkageType:     InternalLinkage
      functionLinenumber: 170
      functionLinenumberEnd: 177
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          45
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - LoadLibraryW
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/library/library.c:172,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/library/library.c:175,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/library/library.c:177,9'
          Dst:             LoadLibraryW
    - functionName:    LoadLibraryW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/library/library.c'
      linkageType:     InternalLinkage
      functionLinenumber: 143
      functionLinenumberEnd: 154
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ConvertWCharToUtf8Alloc
        - LoadLibraryA
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/library/library.c:150,10'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/library/library.c:152,19'
          Dst:             LoadLibraryA
    - functionName:    SetDefaultDllDirectories
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/library/library.c'
      linkageType:     InternalLinkage
      functionLinenumber: 103
      functionLinenumberEnd: 107
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - SetLastError
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/library/library.c:105,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/library/library.c:106,2'
          Dst:             SetLastError
    - functionName:    RemoveDllDirectory
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/library/library.c'
      linkageType:     InternalLinkage
      functionLinenumber: 95
      functionLinenumberEnd: 99
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - SetLastError
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/library/library.c:97,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/library/library.c:98,2'
          Dst:             SetLastError
    - functionName:    AddDllDirectory
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/library/library.c'
      linkageType:     InternalLinkage
      functionLinenumber: 87
      functionLinenumberEnd: 91
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - SetLastError
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/library/library.c:89,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/library/library.c:90,2'
          Dst:             SetLastError
    - functionName:    CommWriteFile
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 374
      functionLinenumberEnd: 567
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         88
      ICount:          523
      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:  []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_io.c:378,2'
          Dst:             EnterCriticalSection
        - Src:             'winpr/libwinpr/comm/comm_io.c:380,7'
          Dst:             CommIsHandled
        - Src:             'winpr/libwinpr/comm/comm_io.c:385,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_io.c:391,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_io.c:410,9'
          Dst:             eventfd_read
        - Src:             'winpr/libwinpr/comm/comm_io.c:452,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_io.c:453,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_io.c:456,11'
          Dst:             select
        - Src:             'winpr/libwinpr/comm/comm_io.c:461,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_io.c:461,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_io.c:461,4'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/comm/comm_io.c:461,4'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_io.c:463,4'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_io.c:470,4'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_io.c:481,8'
          Dst:             eventfd_read
        - Src:             'winpr/libwinpr/comm/comm_io.c:483,9'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_io.c:485,6'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_io.c:491,6'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_io.c:491,6'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_io.c:491,6'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/comm/comm_io.c:491,6'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_io.c:497,5'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_io.c:497,5'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_io.c:502,5'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_io.c:506,4'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_io.c:516,16'
          Dst:             write
        - Src:             'winpr/libwinpr/comm/comm_io.c:522,5'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_io.c:522,5'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_io.c:522,5'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/comm/comm_io.c:522,5'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_io.c:528,9'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_io.c:533,14'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_io.c:535,6'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_io.c:540,6'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_io.c:541,6'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_io.c:558,2'
          Dst:             tcdrain
        - Src:             'winpr/libwinpr/comm/comm_io.c:561,2'
          Dst:             LeaveCriticalSection
        - Src:             'winpr/libwinpr/comm/comm_io.c:565,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:
        - ''
      BBCount:         8
      ICount:          43
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    CommReadFile
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 70
      functionLinenumberEnd: 363
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         182
      ICount:          951
      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:  []
      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:107,6'
          Dst:             tcgetattr
        - Src:             'winpr/libwinpr/comm/comm_io.c:109,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_io.c:115,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_io.c:116,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_io.c:144,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_io.c:147,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_io.c:173,11'
          Dst:             svtime
        - Src:             'winpr/libwinpr/comm/comm_io.c:202,7'
          Dst:             tcsetattr
        - Src:             'winpr/libwinpr/comm/comm_io.c:204,4'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_io.c:208,4'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_io.c:232,9'
          Dst:             eventfd_read
        - Src:             'winpr/libwinpr/comm/comm_io.c:241,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_io.c:242,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_io.c:245,10'
          Dst:             select
        - Src:             'winpr/libwinpr/comm/comm_io.c:250,3'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_io.c:250,3'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_io.c:250,3'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/comm/comm_io.c:250,3'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_io.c:252,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_io.c:259,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_io.c:270,7'
          Dst:             eventfd_read
        - Src:             'winpr/libwinpr/comm/comm_io.c:272,8'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_io.c:274,5'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_io.c:280,5'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_io.c:280,5'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_io.c:280,5'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/comm/comm_io.c:280,5'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_io.c:286,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_io.c:286,4'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_io.c:291,4'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_io.c:295,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_io.c:301,20'
          Dst:             read
        - Src:             'winpr/libwinpr/comm/comm_io.c:306,4'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_io.c:313,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_io.c:313,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_io.c:313,4'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/comm/comm_io.c:313,4'
          Dst:             CommLog_PrintEx
        - Src:             'winpr/libwinpr/comm/comm_io.c:317,8'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_io.c:322,13'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_io.c:324,5'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_io.c:329,5'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_io.c:330,5'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_io.c:338,4'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_io.c:342,26'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_io.c:342,26'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_io.c:344,3'
          Dst:             EnterCriticalSection
        - Src:             'winpr/libwinpr/comm/comm_io.c:348,43'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_io.c:348,43'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_io.c:348,8'
          Dst:             memchr
        - Src:             'winpr/libwinpr/comm/comm_io.c:351,3'
          Dst:             LeaveCriticalSection
        - Src:             'winpr/libwinpr/comm/comm_io.c:355,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/comm/comm_io.c:358,2'
          Dst:             LeaveCriticalSection
        - Src:             'winpr/libwinpr/comm/comm_io.c:361,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:
        - ''
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - CommIsHandled
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_io.c:37,7'
          Dst:             CommIsHandled
    - functionName:    winpr_Digest
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crypto/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 756
      functionLinenumberEnd: 776
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - int
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          78
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - winpr_Digest_Final
        - winpr_Digest_Free
        - winpr_Digest_Init
        - winpr_Digest_New
        - winpr_Digest_Update
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crypto/hash.c:758,26'
          Dst:             winpr_Digest_New
        - Src:             'winpr/libwinpr/crypto/hash.c:763,7'
          Dst:             winpr_Digest_Init
        - Src:             'winpr/libwinpr/crypto/hash.c:766,7'
          Dst:             winpr_Digest_Update
        - Src:             'winpr/libwinpr/crypto/hash.c:769,7'
          Dst:             winpr_Digest_Final
        - Src:             'winpr/libwinpr/crypto/hash.c:774,2'
          Dst:             winpr_Digest_Free
    - functionName:    winpr_Digest_New
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crypto/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 445
      functionLinenumberEnd: 476
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         9
      ICount:          47
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - EVP_MD_CTX_new
        - calloc
        - winpr_Digest_Free
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crypto/hash.c:446,26'
          Dst:             calloc
        - Src:             'winpr/libwinpr/crypto/hash.c:455,15'
          Dst:             EVP_MD_CTX_new
        - Src:             'winpr/libwinpr/crypto/hash.c:473,2'
          Dst:             winpr_Digest_Free
    - functionName:    winpr_Digest_Init
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crypto/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 560
      functionLinenumberEnd: 582
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          46
      EdgeCount:       21
      CyclomaticComplexity: 12
      functionsReached:
        - winpr_Digest_Init_Internal
        - winpr_int_assert
        - winpr_openssl_get_evp_md
      functionUses:    3
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crypto/hash.c:564,2'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/crypto/hash.c:561,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/crypto/hash.c:581,22'
          Dst:             winpr_openssl_get_evp_md
        - Src:             'winpr/libwinpr/crypto/hash.c:582,9'
          Dst:             winpr_Digest_Init_Internal
    - functionName:    winpr_Digest_Update
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crypto/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 589
      functionLinenumberEnd: 611
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          51
      EdgeCount:       21
      CyclomaticComplexity: 12
      functionsReached:
        - EVP_DigestUpdate
        - winpr_int_assert
      functionUses:    12
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crypto/hash.c:592,2'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/crypto/hash.c:590,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/crypto/hash.c:611,9'
          Dst:             EVP_DigestUpdate
    - functionName:    winpr_Digest_Final
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crypto/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 624
      functionLinenumberEnd: 651
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          50
      EdgeCount:       21
      CyclomaticComplexity: 12
      functionsReached:
        - EVP_DigestFinal_ex
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crypto/hash.c:627,2'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/crypto/hash.c:625,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/crypto/hash.c:651,9'
          Dst:             EVP_DigestFinal_ex
    - functionName:    winpr_Digest_Free
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crypto/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 706
      functionLinenumberEnd: 729
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          40
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - EVP_MD_CTX_free
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crypto/hash.c:716,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:
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - EVP_get_digestbyname
        - winpr_md_type_to_string
      functionUses:    5
      BranchProfiles:  []
      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: 480
      functionLinenumberEnd: 494
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          71
      EdgeCount:       20
      CyclomaticComplexity: 5
      functionsReached:
        - EVP_DigestInit_ex
        - WLog_Print_dbg_tag
        - winpr_int_assert
        - winpr_md_type_to_string
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crypto/hash.c:481,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/crypto/hash.c:487,6'
          Dst:             EVP_DigestInit_ex
        - Src:             'winpr/libwinpr/crypto/hash.c:489,3'
          Dst:             winpr_md_type_to_string
        - Src:             'winpr/libwinpr/crypto/hash.c:489,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: 142
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          42
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 323
      functionLinenumberEnd: 335
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          65
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintTextMessageVA
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:326,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:328,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:332,4'
          Dst:             WLog_PrintTextMessageVA
    - 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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    EVP_MD_CTX_new
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    winpr_Digest_Allow_FIPS
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crypto/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 733
      functionLinenumberEnd: 753
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - int
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          78
      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:  []
      Callsites:
        - Src:             'winpr/libwinpr/crypto/hash.c:735,26'
          Dst:             winpr_Digest_New
        - Src:             'winpr/libwinpr/crypto/hash.c:740,7'
          Dst:             winpr_Digest_Init_Allow_FIPS
        - Src:             'winpr/libwinpr/crypto/hash.c:743,7'
          Dst:             winpr_Digest_Update
        - Src:             'winpr/libwinpr/crypto/hash.c:746,7'
          Dst:             winpr_Digest_Final
        - Src:             'winpr/libwinpr/crypto/hash.c:751,2'
          Dst:             winpr_Digest_Free
    - functionName:    winpr_Digest_Init_Allow_FIPS
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crypto/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 523
      functionLinenumberEnd: 557
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          61
      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:527,2'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/crypto/hash.c:524,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/crypto/hash.c:546,24'
          Dst:             winpr_openssl_get_evp_md
        - Src:             'winpr/libwinpr/crypto/hash.c:547,4'
          Dst:             EVP_MD_CTX_set_flags
        - Src:             'winpr/libwinpr/crypto/hash.c:548,11'
          Dst:             winpr_Digest_Init_Internal
        - Src:             'winpr/libwinpr/crypto/hash.c:554,4'
          Dst:             winpr_md_type_to_string
        - Src:             'winpr/libwinpr/crypto/hash.c:554,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: 693
      functionLinenumberEnd: 699
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          44
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - EVP_DigestSignFinal
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crypto/hash.c:694,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/crypto/hash.c:699,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: 680
      functionLinenumberEnd: 686
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          44
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - EVP_DigestUpdate
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crypto/hash.c:681,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/crypto/hash.c:686,10'
          Dst:             EVP_DigestUpdate
    - functionName:    winpr_DigestSign_Init
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crypto/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 664
      functionLinenumberEnd: 677
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          60
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - EVP_DigestSignInit
        - winpr_int_assert
        - winpr_openssl_get_evp_md
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crypto/hash.c:665,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/crypto/hash.c:668,22'
          Dst:             winpr_openssl_get_evp_md
        - Src:             'winpr/libwinpr/crypto/hash.c:672,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: 400
      functionLinenumberEnd: 420
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - int
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          84
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - winpr_HMAC_Final
        - winpr_HMAC_Free
        - winpr_HMAC_Init
        - winpr_HMAC_New
        - winpr_HMAC_Update
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crypto/hash.c:402,24'
          Dst:             winpr_HMAC_New
        - Src:             'winpr/libwinpr/crypto/hash.c:407,7'
          Dst:             winpr_HMAC_Init
        - Src:             'winpr/libwinpr/crypto/hash.c:410,7'
          Dst:             winpr_HMAC_Update
        - Src:             'winpr/libwinpr/crypto/hash.c:413,7'
          Dst:             winpr_HMAC_Final
        - Src:             'winpr/libwinpr/crypto/hash.c:418,2'
          Dst:             winpr_HMAC_Free
    - functionName:    winpr_HMAC_New
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crypto/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 173
      functionLinenumberEnd: 208
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         9
      ICount:          44
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - HMAC_CTX_new
        - calloc
        - winpr_HMAC_Free
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crypto/hash.c:174,41'
          Dst:             calloc
        - Src:             'winpr/libwinpr/crypto/hash.c:186,20'
          Dst:             HMAC_CTX_new
        - Src:             'winpr/libwinpr/crypto/hash.c:205,2'
          Dst:             winpr_HMAC_Free
    - functionName:    winpr_HMAC_Init
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crypto/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 211
      functionLinenumberEnd: 279
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          97
      EdgeCount:       24
      CyclomaticComplexity: 5
      functionsReached:
        - HMAC_Init_ex
        - winpr_int_assert
        - winpr_openssl_get_evp_md
      functionUses:    6
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crypto/hash.c:215,2'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/crypto/hash.c:212,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/crypto/hash.c:240,22'
          Dst:             winpr_openssl_get_evp_md
        - Src:             'winpr/libwinpr/crypto/hash.c:253,6'
          Dst:             HMAC_Init_ex
    - functionName:    winpr_HMAC_Update
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crypto/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 282
      functionLinenumberEnd: 319
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          60
      EdgeCount:       14
      CyclomaticComplexity: 2
      functionsReached:
        - HMAC_Update
        - winpr_int_assert
      functionUses:    15
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crypto/hash.c:285,2'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/crypto/hash.c:283,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/crypto/hash.c:307,6'
          Dst:             HMAC_Update
    - functionName:    winpr_HMAC_Final
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crypto/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 322
      functionLinenumberEnd: 363
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          59
      EdgeCount:       14
      CyclomaticComplexity: 2
      functionsReached:
        - HMAC_Final
        - winpr_int_assert
      functionUses:    6
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crypto/hash.c:325,2'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/crypto/hash.c:323,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/crypto/hash.c:350,6'
          Dst:             HMAC_Final
    - functionName:    winpr_HMAC_Free
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crypto/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 366
      functionLinenumberEnd: 396
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          41
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - HMAC_CTX_free
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crypto/hash.c:383,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: 130
      functionLinenumberEnd: 139
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          50
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - _stricmp
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crypto/hash.c:134,7'
          Dst:             _stricmp
    - functionName:    winpr_RAND_pseudo
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crypto/rand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 82
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_RAND
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crypto/rand.c:82,9'
          Dst:             winpr_RAND
    - functionName:    winpr_RAND
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crypto/rand.c'
      linkageType:     InternalLinkage
      functionLinenumber: 40
      functionLinenumberEnd: 78
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          43
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - RAND_bytes
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crypto/rand.c:44,6'
          Dst:             RAND_bytes
    - functionName:    RAND_bytes
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    winpr_Cipher_BytesToKey
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crypto/cipher.c'
      linkageType:     InternalLinkage
      functionLinenumber: 759
      functionLinenumberEnd: 771
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - int
        - int
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         36
      ICount:          143
      EdgeCount:       39
      CyclomaticComplexity: 5
      functionsReached:
        - EVP_BytesToKey
        - winpr_int_assert
        - winpr_openssl_get_evp_cipher
        - winpr_openssl_get_evp_md
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crypto/cipher.c:767,11'
          Dst:             winpr_openssl_get_evp_md
        - Src:             'winpr/libwinpr/crypto/cipher.c:768,44'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/crypto/cipher.c:768,44'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/crypto/cipher.c:768,15'
          Dst:             winpr_openssl_get_evp_cipher
        - Src:             'winpr/libwinpr/crypto/cipher.c:769,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/crypto/cipher.c:770,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/crypto/cipher.c:771,9'
          Dst:             EVP_BytesToKey
    - functionName:    winpr_openssl_get_evp_cipher
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crypto/cipher.c'
      linkageType:     InternalLinkage
      functionLinenumber: 287
      functionLinenumberEnd: 487
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         53
      ICount:          312
      EdgeCount:       105
      CyclomaticComplexity: 54
      functionsReached:
        - EVP_enc_null
        - EVP_get_cipherbyname
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crypto/cipher.c:290,2'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/crypto/cipher.c:293,10'
          Dst:             EVP_enc_null
        - Src:             'winpr/libwinpr/crypto/cipher.c:297,10'
          Dst:             EVP_get_cipherbyname
        - Src:             'winpr/libwinpr/crypto/cipher.c:301,10'
          Dst:             EVP_get_cipherbyname
        - Src:             'winpr/libwinpr/crypto/cipher.c:305,10'
          Dst:             EVP_get_cipherbyname
        - Src:             'winpr/libwinpr/crypto/cipher.c:309,10'
          Dst:             EVP_get_cipherbyname
        - Src:             'winpr/libwinpr/crypto/cipher.c:313,10'
          Dst:             EVP_get_cipherbyname
        - Src:             'winpr/libwinpr/crypto/cipher.c:317,10'
          Dst:             EVP_get_cipherbyname
        - Src:             'winpr/libwinpr/crypto/cipher.c:321,10'
          Dst:             EVP_get_cipherbyname
        - Src:             'winpr/libwinpr/crypto/cipher.c:325,10'
          Dst:             EVP_get_cipherbyname
        - Src:             'winpr/libwinpr/crypto/cipher.c:329,10'
          Dst:             EVP_get_cipherbyname
        - Src:             'winpr/libwinpr/crypto/cipher.c:333,10'
          Dst:             EVP_get_cipherbyname
        - Src:             'winpr/libwinpr/crypto/cipher.c:337,10'
          Dst:             EVP_get_cipherbyname
        - Src:             'winpr/libwinpr/crypto/cipher.c:341,10'
          Dst:             EVP_get_cipherbyname
        - Src:             'winpr/libwinpr/crypto/cipher.c:345,10'
          Dst:             EVP_get_cipherbyname
        - Src:             'winpr/libwinpr/crypto/cipher.c:349,10'
          Dst:             EVP_get_cipherbyname
        - Src:             'winpr/libwinpr/crypto/cipher.c:353,10'
          Dst:             EVP_get_cipherbyname
        - Src:             'winpr/libwinpr/crypto/cipher.c:357,10'
          Dst:             EVP_get_cipherbyname
        - Src:             'winpr/libwinpr/crypto/cipher.c:361,10'
          Dst:             EVP_get_cipherbyname
        - Src:             'winpr/libwinpr/crypto/cipher.c:365,10'
          Dst:             EVP_get_cipherbyname
        - Src:             'winpr/libwinpr/crypto/cipher.c:369,10'
          Dst:             EVP_get_cipherbyname
        - Src:             'winpr/libwinpr/crypto/cipher.c:373,10'
          Dst:             EVP_get_cipherbyname
        - Src:             'winpr/libwinpr/crypto/cipher.c:377,10'
          Dst:             EVP_get_cipherbyname
        - Src:             'winpr/libwinpr/crypto/cipher.c:381,10'
          Dst:             EVP_get_cipherbyname
        - Src:             'winpr/libwinpr/crypto/cipher.c:385,10'
          Dst:             EVP_get_cipherbyname
        - Src:             'winpr/libwinpr/crypto/cipher.c:389,10'
          Dst:             EVP_get_cipherbyname
        - Src:             'winpr/libwinpr/crypto/cipher.c:393,10'
          Dst:             EVP_get_cipherbyname
        - Src:             'winpr/libwinpr/crypto/cipher.c:397,10'
          Dst:             EVP_get_cipherbyname
        - Src:             'winpr/libwinpr/crypto/cipher.c:401,10'
          Dst:             EVP_get_cipherbyname
        - Src:             'winpr/libwinpr/crypto/cipher.c:405,10'
          Dst:             EVP_get_cipherbyname
        - Src:             'winpr/libwinpr/crypto/cipher.c:409,10'
          Dst:             EVP_get_cipherbyname
        - Src:             'winpr/libwinpr/crypto/cipher.c:413,10'
          Dst:             EVP_get_cipherbyname
        - Src:             'winpr/libwinpr/crypto/cipher.c:417,10'
          Dst:             EVP_get_cipherbyname
        - Src:             'winpr/libwinpr/crypto/cipher.c:421,10'
          Dst:             EVP_get_cipherbyname
        - Src:             'winpr/libwinpr/crypto/cipher.c:425,10'
          Dst:             EVP_get_cipherbyname
        - Src:             'winpr/libwinpr/crypto/cipher.c:429,10'
          Dst:             EVP_get_cipherbyname
        - Src:             'winpr/libwinpr/crypto/cipher.c:433,10'
          Dst:             EVP_get_cipherbyname
        - Src:             'winpr/libwinpr/crypto/cipher.c:437,10'
          Dst:             EVP_get_cipherbyname
        - Src:             'winpr/libwinpr/crypto/cipher.c:441,10'
          Dst:             EVP_get_cipherbyname
        - Src:             'winpr/libwinpr/crypto/cipher.c:445,10'
          Dst:             EVP_get_cipherbyname
        - Src:             'winpr/libwinpr/crypto/cipher.c:449,10'
          Dst:             EVP_get_cipherbyname
        - Src:             'winpr/libwinpr/crypto/cipher.c:453,10'
          Dst:             EVP_get_cipherbyname
        - Src:             'winpr/libwinpr/crypto/cipher.c:457,10'
          Dst:             EVP_get_cipherbyname
        - Src:             'winpr/libwinpr/crypto/cipher.c:461,10'
          Dst:             EVP_get_cipherbyname
        - Src:             'winpr/libwinpr/crypto/cipher.c:465,10'
          Dst:             EVP_get_cipherbyname
        - Src:             'winpr/libwinpr/crypto/cipher.c:469,10'
          Dst:             EVP_get_cipherbyname
        - Src:             'winpr/libwinpr/crypto/cipher.c:473,10'
          Dst:             EVP_get_cipherbyname
        - Src:             'winpr/libwinpr/crypto/cipher.c:477,10'
          Dst:             EVP_get_cipherbyname
        - Src:             'winpr/libwinpr/crypto/cipher.c:481,10'
          Dst:             EVP_get_cipherbyname
    - functionName:    EVP_BytesToKey
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    EVP_enc_null
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    EVP_get_cipherbyname
      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:    47
      BranchProfiles:  []
      Callsites:       []
    - functionName:    winpr_Cipher_Final
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crypto/cipher.c'
      linkageType:     InternalLinkage
      functionLinenumber: 710
      functionLinenumberEnd: 732
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          72
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - EVP_CipherFinal_ex
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crypto/cipher.c:711,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/crypto/cipher.c:716,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/crypto/cipher.c:717,6'
          Dst:             EVP_CipherFinal_ex
    - functionName:    EVP_CipherFinal_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_Cipher_Update
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crypto/cipher.c'
      linkageType:     InternalLinkage
      functionLinenumber: 678
      functionLinenumberEnd: 707
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          103
      EdgeCount:       28
      CyclomaticComplexity: 4
      functionsReached:
        - EVP_CipherUpdate
        - WLog_Print_dbg_tag
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crypto/cipher.c:679,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/crypto/cipher.c:680,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/crypto/cipher.c:687,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/crypto/cipher.c:691,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/crypto/cipher.c:692,6'
          Dst:             EVP_CipherUpdate
        - Src:             'winpr/libwinpr/crypto/cipher.c:705,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 323
      functionLinenumberEnd: 335
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          65
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintTextMessageVA
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:326,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:328,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:332,4'
          Dst:             WLog_PrintTextMessageVA
    - functionName:    EVP_CipherUpdate
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    winpr_Cipher_SetPadding
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crypto/cipher.c'
      linkageType:     InternalLinkage
      functionLinenumber: 659
      functionLinenumberEnd: 674
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          49
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - EVP_CIPHER_CTX_set_padding
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crypto/cipher.c:660,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/crypto/cipher.c:665,2'
          Dst:             EVP_CIPHER_CTX_set_padding
    - functionName:    EVP_CIPHER_CTX_set_padding
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    winpr_Cipher_Free
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crypto/cipher.c'
      linkageType:     InternalLinkage
      functionLinenumber: 735
      functionLinenumberEnd: 751
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          40
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - EVP_CIPHER_CTX_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crypto/cipher.c:741,3'
          Dst:             EVP_CIPHER_CTX_free
    - functionName:    EVP_CIPHER_CTX_free
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    winpr_Cipher_NewEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crypto/cipher.c'
      linkageType:     InternalLinkage
      functionLinenumber: 593
      functionLinenumberEnd: 656
      functionDepth:   0
      returnType:      'N/A'
      argCount:        6
      argTypes:
        - int
        - int
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          114
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - EVP_CIPHER_CTX_new
        - EVP_CIPHER_CTX_set_padding
        - EVP_CipherInit_ex
        - WLog_Print_dbg_tag
        - calloc
        - winpr_Cipher_Free
        - winpr_openssl_get_evp_cipher
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crypto/cipher.c:596,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/crypto/cipher.c:601,26'
          Dst:             calloc
        - Src:             'winpr/libwinpr/crypto/cipher.c:609,26'
          Dst:             winpr_openssl_get_evp_cipher
        - Src:             'winpr/libwinpr/crypto/cipher.c:613,14'
          Dst:             EVP_CIPHER_CTX_new
        - Src:             'winpr/libwinpr/crypto/cipher.c:619,7'
          Dst:             EVP_CipherInit_ex
        - Src:             'winpr/libwinpr/crypto/cipher.c:623,2'
          Dst:             EVP_CIPHER_CTX_set_padding
        - Src:             'winpr/libwinpr/crypto/cipher.c:654,2'
          Dst:             winpr_Cipher_Free
    - functionName:    EVP_CIPHER_CTX_new
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    EVP_CipherInit_ex
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    winpr_Cipher_New
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crypto/cipher.c'
      linkageType:     InternalLinkage
      functionLinenumber: 585
      functionLinenumberEnd: 586
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - int
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_Cipher_NewEx
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crypto/cipher.c:586,9'
          Dst:             winpr_Cipher_NewEx
    - functionName:    cipher_string_compare
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crypto/cipher.c'
      linkageType:     InternalLinkage
      functionLinenumber: 270
      functionLinenumberEnd: 273
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crypto/cipher.c:273,9'
          Dst:             strcmp
    - functionName:    winpr_cipher_type_from_string
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crypto/cipher.c'
      linkageType:     InternalLinkage
      functionLinenumber: 277
      functionLinenumberEnd: 283
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - bsearch
        - cipher_string_compare
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crypto/cipher.c:278,33'
          Dst:             bsearch
        - Src:             'winpr/libwinpr/crypto/cipher.c:278,33'
          Dst:             cipher_string_compare
    - functionName:    cipher_compare
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crypto/cipher.c'
      linkageType:     InternalLinkage
      functionLinenumber: 251
      functionLinenumberEnd: 257
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          43
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    winpr_cipher_type_to_string
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crypto/cipher.c'
      linkageType:     InternalLinkage
      functionLinenumber: 260
      functionLinenumberEnd: 267
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - bsearch
        - cipher_compare
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crypto/cipher.c:262,33'
          Dst:             bsearch
        - Src:             'winpr/libwinpr/crypto/cipher.c:262,33'
          Dst:             cipher_compare
    - functionName:    winpr_RC4_Free
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crypto/cipher.c'
      linkageType:     InternalLinkage
      functionLinenumber: 169
      functionLinenumberEnd: 179
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          30
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - EVP_CIPHER_CTX_free
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crypto/cipher.c:176,2'
          Dst:             EVP_CIPHER_CTX_free
    - functionName:    winpr_RC4_Update
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crypto/cipher.c'
      linkageType:     InternalLinkage
      functionLinenumber: 151
      functionLinenumberEnd: 166
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          86
      EdgeCount:       25
      CyclomaticComplexity: 3
      functionsReached:
        - EVP_CipherUpdate
        - winpr_int_assert
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crypto/cipher.c:152,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/crypto/cipher.c:157,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/crypto/cipher.c:162,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/crypto/cipher.c:163,9'
          Dst:             EVP_CipherUpdate
    - functionName:    winpr_RC4_New
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crypto/cipher.c'
      linkageType:     InternalLinkage
      functionLinenumber: 146
      functionLinenumberEnd: 147
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_RC4_New_Internal
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crypto/cipher.c:147,9'
          Dst:             winpr_RC4_New_Internal
    - functionName:    winpr_RC4_New_Internal
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crypto/cipher.c'
      linkageType:     InternalLinkage
      functionLinenumber: 79
      functionLinenumberEnd: 138
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          122
      EdgeCount:       30
      CyclomaticComplexity: 10
      functionsReached:
        - EVP_CIPHER_CTX_new
        - EVP_CIPHER_CTX_reset
        - EVP_CIPHER_CTX_set_key_length
        - EVP_EncryptInit_ex
        - EVP_rc4
        - calloc
        - winpr_RC4_Free
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crypto/cipher.c:83,39'
          Dst:             calloc
        - Src:             'winpr/libwinpr/crypto/cipher.c:97,13'
          Dst:             EVP_CIPHER_CTX_new
        - Src:             'winpr/libwinpr/crypto/cipher.c:104,26'
          Dst:             EVP_rc4
        - Src:             'winpr/libwinpr/crypto/cipher.c:110,2'
          Dst:             EVP_CIPHER_CTX_reset
        - Src:             'winpr/libwinpr/crypto/cipher.c:111,6'
          Dst:             EVP_EncryptInit_ex
        - Src:             'winpr/libwinpr/crypto/cipher.c:125,2'
          Dst:             EVP_CIPHER_CTX_set_key_length
        - Src:             'winpr/libwinpr/crypto/cipher.c:126,6'
          Dst:             EVP_EncryptInit_ex
        - Src:             'winpr/libwinpr/crypto/cipher.c:135,2'
          Dst:             winpr_RC4_Free
    - functionName:    EVP_rc4
      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_CIPHER_CTX_reset
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    EVP_EncryptInit_ex
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    EVP_CIPHER_CTX_set_key_length
      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:    winpr_RC4_New_Allow_FIPS
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crypto/cipher.c'
      linkageType:     InternalLinkage
      functionLinenumber: 141
      functionLinenumberEnd: 142
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_RC4_New_Internal
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crypto/cipher.c:142,9'
          Dst:             winpr_RC4_New_Internal
    - functionName:    RegUnLoadKeyA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/registry/registry.c'
      linkageType:     InternalLinkage
      functionLinenumber: 623
      functionLinenumberEnd: 625
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/registry/registry.c:624,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 323
      functionLinenumberEnd: 335
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          65
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintTextMessageVA
      functionUses:    43
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:326,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:328,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:332,4'
          Dst:             WLog_PrintTextMessageVA
    - functionName:    RegUnLoadKeyW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/registry/registry.c'
      linkageType:     InternalLinkage
      functionLinenumber: 617
      functionLinenumberEnd: 619
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/registry/registry.c:618,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RegSetValueExA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/registry/registry.c'
      linkageType:     InternalLinkage
      functionLinenumber: 611
      functionLinenumberEnd: 613
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/registry/registry.c:612,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RegSetValueExW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/registry/registry.c'
      linkageType:     InternalLinkage
      functionLinenumber: 603
      functionLinenumberEnd: 605
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/registry/registry.c:604,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RegSetKeySecurity
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/registry/registry.c'
      linkageType:     InternalLinkage
      functionLinenumber: 595
      functionLinenumberEnd: 597
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/registry/registry.c:596,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RegSaveKeyExA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/registry/registry.c'
      linkageType:     InternalLinkage
      functionLinenumber: 587
      functionLinenumberEnd: 589
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/registry/registry.c:588,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RegSaveKeyExW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/registry/registry.c'
      linkageType:     InternalLinkage
      functionLinenumber: 579
      functionLinenumberEnd: 581
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/registry/registry.c:580,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RegRestoreKeyA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/registry/registry.c'
      linkageType:     InternalLinkage
      functionLinenumber: 571
      functionLinenumberEnd: 573
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/registry/registry.c:572,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RegRestoreKeyW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/registry/registry.c'
      linkageType:     InternalLinkage
      functionLinenumber: 564
      functionLinenumberEnd: 566
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/registry/registry.c:565,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RegQueryValueExA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/registry/registry.c'
      linkageType:     InternalLinkage
      functionLinenumber: 501
      functionLinenumberEnd: 560
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         40
      ICount:          206
      EdgeCount:       45
      CyclomaticComplexity: 7
      functionsReached:
        - WLog_Print_dbg_tag
        - reg_read_int
        - reg_type_string
        - regsz_length
        - strcmp
        - winpr_int_assert
      functionUses:    7
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/registry/registry.c:519,4'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/registry/registry.c:508,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/registry/registry.c:514,7'
          Dst:             strcmp
        - Src:             'winpr/libwinpr/registry/registry.c:524,13'
          Dst:             reg_read_int
        - Src:             'winpr/libwinpr/registry/registry.c:527,28'
          Dst:             regsz_length
        - Src:             'winpr/libwinpr/registry/registry.c:534,7'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/registry/registry.c:549,6'
          Dst:             reg_type_string
        - Src:             'winpr/libwinpr/registry/registry.c:549,6'
          Dst:             WLog_Print_dbg_tag
    - functionName:    reg_read_int
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/registry/registry.c'
      linkageType:     InternalLinkage
      functionLinenumber: 369
      functionLinenumberEnd: 415
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         38
      ICount:          163
      EdgeCount:       43
      CyclomaticComplexity: 7
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/registry/registry.c:375,2'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/registry/registry.c:373,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/registry/registry.c:404,3'
          Dst:             winpr_int_assert
    - functionName:    regsz_length
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/registry/registry.c'
      linkageType:     InternalLinkage
      functionLinenumber: 48
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_Print_dbg_tag
        - strnlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/registry/registry.c:55,18'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/registry/registry.c:57,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RegQueryValueExW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/registry/registry.c'
      linkageType:     InternalLinkage
      functionLinenumber: 421
      functionLinenumberEnd: 494
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         46
      ICount:          231
      EdgeCount:       53
      CyclomaticComplexity: 9
      functionsReached:
        - ConvertUtf8NToWChar
        - ConvertWCharToUtf8Alloc
        - WLog_Print_dbg_tag
        - reg_read_int
        - reg_type_string
        - regsz_length
        - strcmp
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/registry/registry.c:445,4'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/registry/registry.c:430,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/registry/registry.c:432,14'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/registry/registry.c:440,7'
          Dst:             strcmp
        - Src:             'winpr/libwinpr/registry/registry.c:450,15'
          Dst:             reg_read_int
        - Src:             'winpr/libwinpr/registry/registry.c:455,10'
          Dst:             regsz_length
        - Src:             'winpr/libwinpr/registry/registry.c:466,7'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/registry/registry.c:473,11'
          Dst:             ConvertUtf8NToWChar
        - Src:             'winpr/libwinpr/registry/registry.c:482,6'
          Dst:             reg_type_string
        - Src:             'winpr/libwinpr/registry/registry.c:482,6'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RegQueryInfoKeyA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/registry/registry.c'
      linkageType:     InternalLinkage
      functionLinenumber: 363
      functionLinenumberEnd: 365
      functionDepth:   0
      returnType:      int
      argCount:        12
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          36
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/registry/registry.c:364,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RegQueryInfoKeyW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/registry/registry.c'
      linkageType:     InternalLinkage
      functionLinenumber: 349
      functionLinenumberEnd: 351
      functionDepth:   0
      returnType:      int
      argCount:        12
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          36
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/registry/registry.c:350,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RegOpenUserClassesRoot
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/registry/registry.c'
      linkageType:     InternalLinkage
      functionLinenumber: 335
      functionLinenumberEnd: 337
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/registry/registry.c:336,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RegGetInstance
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/registry/registry.c'
      linkageType:     InternalLinkage
      functionLinenumber: 62
      functionLinenumberEnd: 66
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          25
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - reg_open
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/registry/registry.c:64,14'
          Dst:             reg_open
    - functionName:    RegOpenKeyExA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/registry/registry.c'
      linkageType:     InternalLinkage
      functionLinenumber: 300
      functionLinenumberEnd: 331
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          121
      EdgeCount:       33
      CyclomaticComplexity: 7
      functionsReached:
        - RegGetInstance
        - WLog_Print_dbg_tag
        - _stricmp
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/registry/registry.c:301,13'
          Dst:             RegGetInstance
        - Src:             'winpr/libwinpr/registry/registry.c:308,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/registry/registry.c:312,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/registry/registry.c:317,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/registry/registry.c:319,25'
          Dst:             _stricmp
    - functionName:    RegOpenKeyExW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/registry/registry.c'
      linkageType:     InternalLinkage
      functionLinenumber: 287
      functionLinenumberEnd: 296
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          52
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ConvertWCharToUtf8Alloc
        - RegOpenKeyExA
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/registry/registry.c:289,14'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/registry/registry.c:293,7'
          Dst:             RegOpenKeyExA
    - functionName:    RegOpenCurrentUser
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/registry/registry.c'
      linkageType:     InternalLinkage
      functionLinenumber: 281
      functionLinenumberEnd: 283
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/registry/registry.c:282,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RegNotifyChangeKeyValue
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/registry/registry.c'
      linkageType:     InternalLinkage
      functionLinenumber: 275
      functionLinenumberEnd: 277
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/registry/registry.c:276,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RegLoadMUIStringA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/registry/registry.c'
      linkageType:     InternalLinkage
      functionLinenumber: 267
      functionLinenumberEnd: 269
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/registry/registry.c:268,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RegLoadMUIStringW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/registry/registry.c'
      linkageType:     InternalLinkage
      functionLinenumber: 258
      functionLinenumberEnd: 260
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/registry/registry.c:259,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RegLoadKeyA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/registry/registry.c'
      linkageType:     InternalLinkage
      functionLinenumber: 249
      functionLinenumberEnd: 251
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/registry/registry.c:250,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RegLoadKeyW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/registry/registry.c'
      linkageType:     InternalLinkage
      functionLinenumber: 242
      functionLinenumberEnd: 244
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/registry/registry.c:243,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RegLoadAppKeyA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/registry/registry.c'
      linkageType:     InternalLinkage
      functionLinenumber: 235
      functionLinenumberEnd: 237
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/registry/registry.c:236,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RegLoadAppKeyW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/registry/registry.c'
      linkageType:     InternalLinkage
      functionLinenumber: 227
      functionLinenumberEnd: 229
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/registry/registry.c:228,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RegGetValueA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/registry/registry.c'
      linkageType:     InternalLinkage
      functionLinenumber: 219
      functionLinenumberEnd: 221
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/registry/registry.c:220,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RegGetValueW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/registry/registry.c'
      linkageType:     InternalLinkage
      functionLinenumber: 210
      functionLinenumberEnd: 212
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/registry/registry.c:211,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RegGetKeySecurity
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/registry/registry.c'
      linkageType:     InternalLinkage
      functionLinenumber: 201
      functionLinenumberEnd: 203
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/registry/registry.c:202,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RegFlushKey
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/registry/registry.c'
      linkageType:     InternalLinkage
      functionLinenumber: 192
      functionLinenumberEnd: 194
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          14
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/registry/registry.c:193,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RegEnumValueA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/registry/registry.c'
      linkageType:     InternalLinkage
      functionLinenumber: 186
      functionLinenumberEnd: 188
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/registry/registry.c:187,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RegEnumValueW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/registry/registry.c'
      linkageType:     InternalLinkage
      functionLinenumber: 177
      functionLinenumberEnd: 179
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/registry/registry.c:178,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RegEnumKeyExA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/registry/registry.c'
      linkageType:     InternalLinkage
      functionLinenumber: 168
      functionLinenumberEnd: 170
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/registry/registry.c:169,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RegEnumKeyExW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/registry/registry.c'
      linkageType:     InternalLinkage
      functionLinenumber: 158
      functionLinenumberEnd: 160
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/registry/registry.c:159,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RegDisablePredefinedCacheEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/registry/registry.c'
      linkageType:     InternalLinkage
      functionLinenumber: 148
      functionLinenumberEnd: 150
      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:  []
      Callsites:
        - Src:             'winpr/libwinpr/registry/registry.c:149,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RegDeleteValueA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/registry/registry.c'
      linkageType:     InternalLinkage
      functionLinenumber: 142
      functionLinenumberEnd: 144
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/registry/registry.c:143,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RegDeleteValueW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/registry/registry.c'
      linkageType:     InternalLinkage
      functionLinenumber: 136
      functionLinenumberEnd: 138
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/registry/registry.c:137,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RegDeleteTreeA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/registry/registry.c'
      linkageType:     InternalLinkage
      functionLinenumber: 130
      functionLinenumberEnd: 132
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/registry/registry.c:131,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RegDeleteTreeW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/registry/registry.c'
      linkageType:     InternalLinkage
      functionLinenumber: 124
      functionLinenumberEnd: 126
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/registry/registry.c:125,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RegDeleteKeyExA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/registry/registry.c'
      linkageType:     InternalLinkage
      functionLinenumber: 118
      functionLinenumberEnd: 120
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/registry/registry.c:119,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RegDeleteKeyExW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/registry/registry.c'
      linkageType:     InternalLinkage
      functionLinenumber: 111
      functionLinenumberEnd: 113
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/registry/registry.c:112,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RegCreateKeyExA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/registry/registry.c'
      linkageType:     InternalLinkage
      functionLinenumber: 104
      functionLinenumberEnd: 106
      functionDepth:   0
      returnType:      int
      argCount:        9
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/registry/registry.c:105,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RegCreateKeyExW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/registry/registry.c'
      linkageType:     InternalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 96
      functionDepth:   0
      returnType:      int
      argCount:        9
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/registry/registry.c:95,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RegCopyTreeA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/registry/registry.c'
      linkageType:     InternalLinkage
      functionLinenumber: 84
      functionLinenumberEnd: 86
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/registry/registry.c:85,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RegCopyTreeW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/registry/registry.c'
      linkageType:     InternalLinkage
      functionLinenumber: 77
      functionLinenumberEnd: 79
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/registry/registry.c:78,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    RegCloseKey
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/registry/registry.c'
      linkageType:     InternalLinkage
      functionLinenumber: 70
      functionLinenumberEnd: 72
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          7
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    compare_byte_relaxed
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1246
      functionLinenumberEnd: 1262
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - char
        - char
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          58
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    Stream_Read
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 732
      functionLinenumberEnd: 738
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          80
      EdgeCount:       25
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_GetRemainingCapacity
        - Stream_Seek
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:733,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:734,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:735,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:735,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:737,3'
          Dst:             Stream_Seek
    - functionName:    Stream_Seek
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 157
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          51
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - winpr_int_assert
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:158,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:159,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:159,3'
          Dst:             winpr_int_assert
    - functionName:    Stream_Write
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1187
      functionLinenumberEnd: 1196
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          77
      EdgeCount:       25
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_GetRemainingCapacity
        - Stream_Seek
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1190,4'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1191,4'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1192,4'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:1192,4'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1194,4'
          Dst:             Stream_Seek
    - functionName:    Stream_Fill
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1233
      functionLinenumberEnd: 1238
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          57
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - Stream_Seek
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1234,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1235,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:1235,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1237,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:
        - ''
      BBCount:         3
      ICount:          18
      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:
        - ''
      BBCount:         13
      ICount:          64
      EdgeCount:       14
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      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:
        - ''
        - ''
      BBCount:         9
      ICount:          45
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_Data_Write_UINT16
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      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:
        - ''
        - ''
      BBCount:         9
      ICount:          48
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    5
      BranchProfiles:  []
      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:
        - ''
      BBCount:         13
      ICount:          68
      EdgeCount:       14
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      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:
        - ''
      BBCount:         9
      ICount:          33
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      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:
        - ''
        - ''
      BBCount:         9
      ICount:          45
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_Data_Write_UINT16
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      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:
        - ''
        - ''
      BBCount:         9
      ICount:          36
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      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: 1120
      functionLinenumberEnd: 1157
      functionDepth:   0
      returnType:      'N/A'
      argCount:        7
      argTypes:
        - 'N/A'
        - size_t
        - int
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          67
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/image.c:1121,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:1122,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:1156,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 323
      functionLinenumberEnd: 335
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          65
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintTextMessageVA
      functionUses:    20
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:326,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:328,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:332,4'
          Dst:             WLog_PrintTextMessageVA
    - functionName:    winpr_convert_to_jpeg
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 689
      functionLinenumberEnd: 697
      functionDepth:   0
      returnType:      'N/A'
      argCount:        7
      argTypes:
        - 'N/A'
        - size_t
        - int
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          67
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/image.c:690,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:691,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:696,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    winpr_convert_to_webp
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 826
      functionLinenumberEnd: 834
      functionDepth:   0
      returnType:      'N/A'
      argCount:        7
      argTypes:
        - 'N/A'
        - size_t
        - int
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          67
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/image.c:827,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:828,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:833,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    winpr_image_format_extension
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1349
      functionLinenumberEnd: 1363
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          37
      EdgeCount:       12
      CyclomaticComplexity: 7
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/image.c:1350,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    winpr_image_format_mime
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1332
      functionLinenumberEnd: 1346
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          37
      EdgeCount:       12
      CyclomaticComplexity: 7
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/image.c:1333,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    compare_pixel
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1265
      functionLinenumberEnd: 1281
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          130
      EdgeCount:       32
      CyclomaticComplexity: 7
      functionsReached:
        - compare_byte_relaxed
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/image.c:1266,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:1267,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:1269,7'
          Dst:             compare_byte_relaxed
        - Src:             'winpr/libwinpr/utils/image.c:1271,7'
          Dst:             compare_byte_relaxed
        - Src:             'winpr/libwinpr/utils/image.c:1273,7'
          Dst:             compare_byte_relaxed
        - Src:             'winpr/libwinpr/utils/image.c:1277,8'
          Dst:             compare_byte_relaxed
    - functionName:    convert
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1205
      functionLinenumberEnd: 1243
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          216
      EdgeCount:       37
      CyclomaticComplexity: 7
      functionsReached:
        - calloc
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/image.c:1206,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:1207,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:1214,15'
          Dst:             calloc
    - functionName:    winpr_image_equal
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1284
      functionLinenumberEnd: 1329
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         40
      ICount:          244
      EdgeCount:       54
      CyclomaticComplexity: 16
      functionsReached:
        - compare_pixel
        - convert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/image.c:1306,16'
          Dst:             convert
        - Src:             'winpr/libwinpr/utils/image.c:1307,16'
          Dst:             convert
        - Src:             'winpr/libwinpr/utils/image.c:1321,10'
          Dst:             compare_pixel
    - functionName:    winpr_image_format_is_supported
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1185
      functionLinenumberEnd: 1202
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          22
      EdgeCount:       6
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/image.c:1186,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    winpr_image_free
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 675
      functionLinenumberEnd: 683
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          41
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    winpr_image_new
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 665
      functionLinenumberEnd: 672
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          30
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - calloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/image.c:666,27'
          Dst:             calloc
    - functionName:    winpr_convert_from_png
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1166
      functionLinenumberEnd: 1180
      functionDepth:   0
      returnType:      size_t
      argCount:        6
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Print_dbg_tag
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/image.c:1179,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    winpr_convert_from_jpeg
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 762
      functionLinenumberEnd: 771
      functionDepth:   0
      returnType:      size_t
      argCount:        6
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         36
      ICount:          99
      EdgeCount:       37
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/image.c:763,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:764,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:765,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:766,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:767,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:770,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    winpr_convert_from_webp
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 869
      functionLinenumberEnd: 882
      functionDepth:   0
      returnType:      size_t
      argCount:        6
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         36
      ICount:          107
      EdgeCount:       37
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/image.c:870,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:871,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:872,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:873,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:874,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:881,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    winpr_image_bitmap_read_buffer
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 438
      functionLinenumberEnd: 571
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         100
      ICount:          617
      EdgeCount:       126
      CyclomaticComplexity: 28
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_GetPosition
        - Stream_Read
        - Stream_StaticConstInit
        - WLog_Print_dbg_tag
        - readBitmapFileHeader
        - readBitmapInfoHeader
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/image.c:444,15'
          Dst:             Stream_StaticConstInit
        - Src:             'winpr/libwinpr/utils/image.c:450,7'
          Dst:             readBitmapFileHeader
        - Src:             'winpr/libwinpr/utils/image.c:450,40'
          Dst:             readBitmapInfoHeader
        - Src:             'winpr/libwinpr/utils/image.c:455,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/utils/image.c:462,22'
          Dst:             Stream_GetPosition
        - Src:             'winpr/libwinpr/utils/image.c:466,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/utils/image.c:472,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'winpr/libwinpr/utils/image.c:477,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/utils/image.c:496,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/utils/image.c:503,26'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:503,26'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:505,21'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:505,21'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:512,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/utils/image.c:543,7'
          Dst:             Stream_Read
        - Src:             'winpr/libwinpr/utils/image.c:553,7'
          Dst:             Stream_Read
    - 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:
        - ''
        - ''
      BBCount:         47
      ICount:          205
      EdgeCount:       56
      CyclomaticComplexity: 11
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogEx
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - stream_read_u16_le
        - stream_read_u32_le
        - stream_read_u8
      functionUses:    1
      BranchProfiles:  []
      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_PrintTextMessage
        - Src:             'winpr/libwinpr/utils/image.c:104,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/utils/image.c:104,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'winpr/libwinpr/utils/image.c:108,9'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
    - functionName:    readBitmapInfoHeader
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 132
      functionLinenumberEnd: 219
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         148
      ICount:          647
      EdgeCount:       173
      CyclomaticComplexity: 27
      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:163,2'
          Branch Sides:    []
      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:157,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/utils/image.c:176,9'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:176,9'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:180,6'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/utils/image.c:184,27'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:184,27'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:185,26'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:185,26'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:188,6'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/utils/image.c:191,23'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:191,23'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:200,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/utils/image.c:206,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/utils/image.c:210,21'
          Dst:             Stream_GetPosition
        - Src:             'winpr/libwinpr/utils/image.c:213,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/utils/image.c:218,9'
          Dst:             Stream_SafeSeekEx
    - functionName:    Stream_GetPosition
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1363
      functionLinenumberEnd: 1366
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          54
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1364,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1365,3'
          Dst:             winpr_int_assert
    - functionName:    stream_read_u32_le
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 244
      functionLinenumberEnd: 252
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          64
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_GetRemainingLength
        - Stream_Seek
        - winpr_Data_Get_UINT32
        - winpr_int_assert
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:246,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:247,3'
          Dst:             Stream_GetRemainingLength
        - Src:             'winpr/include/winpr/stream.h:247,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:249,20'
          Dst:             winpr_Data_Get_UINT32
        - Src:             'winpr/include/winpr/stream.h:251,4'
          Dst:             Stream_Seek
    - functionName:    stream_read_i32_le
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 268
      functionLinenumberEnd: 276
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          64
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_GetRemainingLength
        - Stream_Seek
        - winpr_Data_Get_INT32
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:270,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:271,3'
          Dst:             Stream_GetRemainingLength
        - Src:             'winpr/include/winpr/stream.h:271,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:273,19'
          Dst:             winpr_Data_Get_INT32
        - Src:             'winpr/include/winpr/stream.h:275,4'
          Dst:             Stream_Seek
    - functionName:    stream_read_u16_le
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 196
      functionLinenumberEnd: 204
      functionDepth:   0
      returnType:      short
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          64
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_GetRemainingLength
        - Stream_Seek
        - winpr_Data_Get_UINT16
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:198,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:199,3'
          Dst:             Stream_GetRemainingLength
        - Src:             'winpr/include/winpr/stream.h:199,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:201,20'
          Dst:             winpr_Data_Get_UINT16
        - Src:             'winpr/include/winpr/stream.h:203,4'
          Dst:             Stream_Seek
    - functionName:    stream_read_u8
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 177
      functionLinenumberEnd: 184
      functionDepth:   0
      returnType:      char
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          62
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_GetRemainingLength
        - Stream_Seek
        - winpr_Data_Get_UINT8
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:178,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:179,3'
          Dst:             Stream_GetRemainingLength
        - Src:             'winpr/include/winpr/stream.h:179,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:181,19'
          Dst:             winpr_Data_Get_UINT8
        - Src:             'winpr/include/winpr/stream.h:183,4'
          Dst:             Stream_Seek
    - functionName:    winpr_image_read_buffer
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 606
      functionLinenumberEnd: 662
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         76
      ICount:          467
      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:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/image.c:618,12'
          Dst:             winpr_image_bitmap_read_buffer
        - Src:             'winpr/libwinpr/utils/image.c:624,22'
          Dst:             winpr_convert_from_webp
        - Src:             'winpr/libwinpr/utils/image.c:638,22'
          Dst:             winpr_convert_from_jpeg
        - Src:             'winpr/libwinpr/utils/image.c:651,22'
          Dst:             winpr_convert_from_png
    - functionName:    _ftelli64
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wtypes.h'
      linkageType:     InternalLinkage
      functionLinenumber: 503
      functionLinenumberEnd: 504
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ftello64
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/wtypes.h:504,9'
          Dst:             ftello64
    - functionName:    winpr_image_read
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 574
      functionLinenumberEnd: 603
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          93
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - WLog_Print_dbg_tag
        - _ftelli64
        - fclose
        - fread
        - fseek
        - winpr_fopen
        - winpr_image_read_buffer
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/image.c:577,13'
          Dst:             winpr_fopen
        - Src:             'winpr/libwinpr/utils/image.c:580,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/utils/image.c:584,8'
          Dst:             fseek
        - Src:             'winpr/libwinpr/utils/image.c:585,14'
          Dst:             _ftelli64
        - Src:             'winpr/libwinpr/utils/image.c:586,8'
          Dst:             fseek
        - Src:             'winpr/libwinpr/utils/image.c:593,15'
          Dst:             fread
        - Src:             'winpr/libwinpr/utils/image.c:596,14'
          Dst:             winpr_image_read_buffer
        - Src:             'winpr/libwinpr/utils/image.c:601,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: 399
      functionLinenumberEnd: 417
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          59
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - fclose
        - fwrite
        - winpr_fopen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/image.c:405,14'
          Dst:             winpr_fopen
        - Src:             'winpr/libwinpr/utils/image.c:410,21'
          Dst:             fwrite
        - Src:             'winpr/libwinpr/utils/image.c:411,10'
          Dst:             fclose
    - functionName:    winpr_image_write_buffer
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1366
      functionLinenumberEnd: 1410
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          214
      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:1368,2'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/utils/image.c:1367,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:1374,17'
          Dst:             winpr_bitmap_write_buffer
        - Src:             'winpr/libwinpr/utils/image.c:1383,17'
          Dst:             winpr_convert_to_webp
        - Src:             'winpr/libwinpr/utils/image.c:1392,17'
          Dst:             winpr_convert_to_jpeg
        - Src:             'winpr/libwinpr/utils/image.c:1401,17'
          Dst:             winpr_convert_to_png
    - functionName:    winpr_bitmap_write_buffer
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 301
      functionLinenumberEnd: 346
      functionDepth:   0
      returnType:      'N/A'
      argCount:        7
      argTypes:
        - 'N/A'
        - size_t
        - int
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         34
      ICount:          219
      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:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/image.c:302,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:312,15'
          Dst:             Stream_New
        - Src:             'winpr/libwinpr/utils/image.c:317,21'
          Dst:             winpr_bitmap_construct_header
        - Src:             'winpr/libwinpr/utils/image.c:320,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'winpr/libwinpr/utils/image.c:322,2'
          Dst:             Stream_Write
        - Src:             'winpr/libwinpr/utils/image.c:324,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'winpr/libwinpr/utils/image.c:331,3'
          Dst:             Stream_Write
        - Src:             'winpr/libwinpr/utils/image.c:332,3'
          Dst:             Stream_Zero
        - Src:             'winpr/libwinpr/utils/image.c:335,11'
          Dst:             Stream_Buffer
        - Src:             'winpr/libwinpr/utils/image.c:337,22'
          Dst:             Stream_GetPosition
        - Src:             'winpr/libwinpr/utils/image.c:343,2'
          Dst:             Stream_Free
    - functionName:    winpr_bitmap_construct_header
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 222
      functionLinenumberEnd: 290
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - size_t
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         35
      ICount:          263
      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:258,2'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/utils/image.c:235,15'
          Dst:             Stream_New
        - Src:             'winpr/libwinpr/utils/image.c:276,7'
          Dst:             writeBitmapFileHeader
        - Src:             'winpr/libwinpr/utils/image.c:279,7'
          Dst:             writeBitmapInfoHeader
        - Src:             'winpr/libwinpr/utils/image.c:282,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'winpr/libwinpr/utils/image.c:285,2'
          Dst:             Stream_Zero
        - Src:             'winpr/libwinpr/utils/image.c:286,11'
          Dst:             Stream_Buffer
        - Src:             'winpr/libwinpr/utils/image.c:288,2'
          Dst:             Stream_Free
    - functionName:    Stream_Zero
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1241
      functionLinenumberEnd: 1243
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_Fill
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1242,3'
          Dst:             Stream_Fill
    - functionName:    Stream_Buffer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1285
      functionLinenumberEnd: 1287
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          31
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1286,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:
        - ''
        - ''
      BBCount:         90
      ICount:          268
      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:  []
      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:
        - ''
        - ''
      BBCount:         160
      ICount:          443
      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:  []
      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: 1087
      functionLinenumberEnd: 1094
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          68
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - winpr_Data_Write_UINT32
        - winpr_int_assert
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1088,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1089,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1090,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:1090,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1092,3'
          Dst:             winpr_Data_Write_UINT32
    - functionName:    Stream_Write_INT32_unchecked
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1033
      functionLinenumberEnd: 1040
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          68
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - winpr_Data_Write_INT32
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1034,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1035,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1036,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:1036,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1038,3'
          Dst:             winpr_Data_Write_INT32
    - functionName:    Stream_Write_UINT16_unchecked
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 925
      functionLinenumberEnd: 932
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          68
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - winpr_Data_Write_UINT16
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:926,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:927,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:928,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:928,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:930,3'
          Dst:             winpr_Data_Write_UINT16
    - functionName:    Stream_Write_UINT8_unchecked
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 873
      functionLinenumberEnd: 880
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          68
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - winpr_Data_Write_UINT8
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:874,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:875,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:876,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:876,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:878,3'
          Dst:             winpr_Data_Write_UINT8
    - functionName:    winpr_image_write_ex
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 427
      functionLinenumberEnd: 435
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          55
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_image_write_buffer
        - winpr_int_assert
        - write_and_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/image.c:428,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:431,15'
          Dst:             winpr_image_write_buffer
        - Src:             'winpr/libwinpr/utils/image.c:434,9'
          Dst:             write_and_free
    - functionName:    winpr_image_write
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 421
      functionLinenumberEnd: 423
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         30
      ICount:          102
      EdgeCount:       33
      CyclomaticComplexity: 5
      functionsReached:
        - winpr_image_write_ex
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/image.c:422,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:423,37'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:423,37'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/image.c:423,9'
          Dst:             winpr_image_write_ex
    - functionName:    winpr_bitmap_write_ex
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 356
      functionLinenumberEnd: 395
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          156
      EdgeCount:       34
      CyclomaticComplexity: 11
      functionsReached:
        - WLog_Print_dbg_tag
        - fclose
        - fwrite
        - winpr_bitmap_write_buffer
        - winpr_fopen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/image.c:373,14'
          Dst:             winpr_bitmap_write_buffer
        - Src:             'winpr/libwinpr/utils/image.c:379,8'
          Dst:             winpr_fopen
        - Src:             'winpr/libwinpr/utils/image.c:382,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/utils/image.c:386,7'
          Dst:             fwrite
        - Src:             'winpr/libwinpr/utils/image.c:393,9'
          Dst:             fclose
    - functionName:    winpr_bitmap_write
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 350
      functionLinenumberEnd: 351
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_bitmap_write_ex
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/image.c:351,9'
          Dst:             winpr_bitmap_write_ex
    - functionName:    winpr_BinToHexString
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/print.c'
      linkageType:     InternalLinkage
      functionLinenumber: 246
      functionLinenumberEnd: 263
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          71
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - winpr_BinToHexStringBuffer
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/print.c:255,7'
          Dst:             winpr_BinToHexStringBuffer
    - functionName:    winpr_BinToHexStringBuffer
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/print.c'
      linkageType:     InternalLinkage
      functionLinenumber: 214
      functionLinenumberEnd: 243
      functionDepth:   0
      returnType:      size_t
      argCount:        5
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          195
      EdgeCount:       34
      CyclomaticComplexity: 10
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    value
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/print.c'
      linkageType:     InternalLinkage
      functionLinenumber: 177
      functionLinenumberEnd: 185
      functionDepth:   0
      returnType:      char
      argCount:        1
      argTypes:
        - char
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          96
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    winpr_HexStringToBinBuffer
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/print.c'
      linkageType:     InternalLinkage
      functionLinenumber: 188
      functionLinenumberEnd: 210
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          163
      EdgeCount:       36
      CyclomaticComplexity: 11
      functionsReached:
        - strnlen
        - value
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/print.c:194,14'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/utils/print.c:197,14'
          Dst:             value
        - Src:             'winpr/libwinpr/utils/print.c:199,30'
          Dst:             value
    - functionName:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 323
      functionLinenumberEnd: 335
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          65
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintTextMessageVA
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:326,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:328,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:332,4'
          Dst:             WLog_PrintTextMessageVA
    - functionName:    winpr_CArrayDump
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/print.c'
      linkageType:     InternalLinkage
      functionLinenumber: 135
      functionLinenumberEnd: 174
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          162
      EdgeCount:       28
      CyclomaticComplexity: 8
      functionsReached:
        - WLog_Print_dbg_tag
        - __errno_location
        - snprintf
        - winpr_strerror
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/print.c:145,3'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/utils/print.c:145,3'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/utils/print.c:145,3'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/utils/print.c:145,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/utils/print.c:161,19'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/utils/print.c:167,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    winpr_HexLogDump
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/print.c'
      linkageType:     InternalLinkage
      functionLinenumber: 44
      functionLinenumberEnd: 132
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         64
      ICount:          341
      EdgeCount:       81
      CyclomaticComplexity: 19
      functionsReached:
        - WLog_IsLevelActive
        - WLog_PrintTextMessage
        - __errno_location
        - snprintf
        - winpr_strerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/print.c:62,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/utils/print.c:73,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/utils/print.c:73,3'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/utils/print.c:73,3'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/utils/print.c:73,3'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/utils/print.c:73,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'winpr/libwinpr/utils/print.c:80,12'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/utils/print.c:94,9'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/utils/print.c:104,9'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/utils/print.c:114,9'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/utils/print.c:123,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/utils/print.c:123,3'
          Dst:             WLog_PrintTextMessage
        - Src:             'winpr/libwinpr/utils/print.c:129,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/utils/print.c:129,2'
          Dst:             WLog_PrintTextMessage
    - functionName:    winpr_HexDump
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/print.c'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 41
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Get
        - winpr_HexLogDump
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/print.c:39,14'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/utils/print.c:40,2'
          Dst:             winpr_HexLogDump
    - functionName:    Stream_Init
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 63
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    winpr_Data_Get_INT8
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/endian.h'
      linkageType:     InternalLinkage
      functionLinenumber: 46
      functionLinenumberEnd: 49
      functionDepth:   0
      returnType:      char
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          33
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/endian.h:47,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:
        - ''
      BBCount:         9
      ICount:          33
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/endian.h:40,3'
          Dst:             winpr_int_assert
    - functionName:    readLen
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/asn1/asn1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 903
      functionLinenumberEnd: 937
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          134
      EdgeCount:       34
      CyclomaticComplexity: 9
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - stream_read_u8
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:907,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:910,2'
          Dst:             stream_read_u8
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:917,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:923,4'
          Dst:             stream_read_u8
    - functionName:    stream_read_u8
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 177
      functionLinenumberEnd: 184
      functionDepth:   0
      returnType:      char
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          62
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_GetRemainingLength
        - Stream_Seek
        - winpr_Data_Get_UINT8
        - winpr_int_assert
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:178,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:179,3'
          Dst:             Stream_GetRemainingLength
        - Src:             'winpr/include/winpr/stream.h:179,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:181,19'
          Dst:             winpr_Data_Get_UINT8
        - Src:             'winpr/include/winpr/stream.h:183,4'
          Dst:             Stream_Seek
    - functionName:    Stream_Seek
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 157
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          51
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - winpr_int_assert
      functionUses:    15
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:158,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:159,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:159,3'
          Dst:             winpr_int_assert
    - functionName:    winpr_Data_Write_INT8
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/endian.h'
      linkageType:     InternalLinkage
      functionLinenumber: 304
      functionLinenumberEnd: 308
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          36
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/endian.h:305,3'
          Dst:             winpr_int_assert
    - functionName:    winpr_Data_Write_INT32_BE
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/endian.h'
      linkageType:     InternalLinkage
      functionLinenumber: 349
      functionLinenumberEnd: 354
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          45
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_Data_Write_UINT16_BE
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/endian.h:350,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/endian.h:352,3'
          Dst:             winpr_Data_Write_UINT16_BE
        - Src:             'winpr/include/winpr/endian.h:353,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:
        - ''
        - ''
      BBCount:         9
      ICount:          48
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/endian.h:244,3'
          Dst:             winpr_int_assert
    - functionName:    winpr_Data_Write_INT16_BE
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/endian.h'
      linkageType:     InternalLinkage
      functionLinenumber: 326
      functionLinenumberEnd: 331
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          48
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/endian.h:327,3'
          Dst:             winpr_int_assert
    - functionName:    Stream_Write_INT32_BE_unchecked
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1061
      functionLinenumberEnd: 1068
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          68
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - winpr_Data_Write_INT32_BE
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1062,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1063,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1064,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:1064,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1066,3'
          Dst:             winpr_Data_Write_INT32_BE
    - functionName:    Stream_Write_INT16_BE_unchecked
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 979
      functionLinenumberEnd: 986
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          68
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - winpr_Data_Write_INT16_BE
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:980,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:981,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:982,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:982,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:984,3'
          Dst:             winpr_Data_Write_INT16_BE
    - functionName:    asn1IntegerLen
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/asn1/asn1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 535
      functionLinenumberEnd: 542
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          52
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - 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:
        - ''
        - ''
      BBCount:         9
      ICount:          45
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_Data_Write_UINT16_BE
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      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:    Stream_Write_UINT32_BE_unchecked
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1113
      functionLinenumberEnd: 1118
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          42
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - winpr_Data_Write_UINT32_BE
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1114,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:1114,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1116,3'
          Dst:             winpr_Data_Write_UINT32_BE
    - functionName:    Stream_Write_UINT24_BE_unchecked
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1005
      functionLinenumberEnd: 1014
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         27
      ICount:          100
      EdgeCount:       27
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1006,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1007,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1008,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1009,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:1009,3'
          Dst:             winpr_int_assert
    - functionName:    Stream_Write_UINT16_BE_unchecked
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 951
      functionLinenumberEnd: 958
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          68
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - winpr_Data_Write_UINT16_BE
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:952,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:953,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:954,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:954,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:956,3'
          Dst:             winpr_Data_Write_UINT16_BE
    - 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:
        - ''
        - ''
      BBCount:         9
      ICount:          36
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/endian.h:222,3'
          Dst:             winpr_int_assert
    - functionName:    Stream_GetPosition
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1363
      functionLinenumberEnd: 1366
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          54
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1364,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1365,3'
          Dst:             winpr_int_assert
    - functionName:    asn1enc_get_free_container
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/asn1/asn1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 265
      functionLinenumberEnd: 292
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         23
      ICount:          156
      EdgeCount:       28
      CyclomaticComplexity: 7
      functionsReached:
        - realloc
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:267,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:274,32'
          Dst:             realloc
    - functionName:    asn1enc_get_free_chunk
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/asn1/asn1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 205
      functionLinenumberEnd: 262
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         53
      ICount:          339
      EdgeCount:       67
      CyclomaticComplexity: 16
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_GetPosition
        - Stream_Seek
        - realloc
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:207,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:208,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:218,9'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:221,4'
          Dst:             Stream_Seek
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:234,20'
          Dst:             realloc
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:249,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:253,20'
          Dst:             Stream_GetPosition
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:260,2'
          Dst:             Stream_Seek
    - functionName:    WinPrAsn1DecGetStream
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/asn1/asn1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1506
      functionLinenumberEnd: 1512
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          36
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_ConstPointer
        - Stream_GetRemainingLength
        - Stream_StaticConstInit
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1508,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1510,29'
          Dst:             Stream_ConstPointer
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1511,25'
          Dst:             Stream_GetRemainingLength
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1510,2'
          Dst:             Stream_StaticConstInit
    - functionName:    Stream_ConstPointer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1318
      functionLinenumberEnd: 1320
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          31
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1319,3'
          Dst:             winpr_int_assert
    - functionName:    WinPrAsn1DecReadContextualSequence
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/asn1/asn1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1485
      functionLinenumberEnd: 1503
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          65
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_Seek
        - WinPrAsn1DecReadSequence
        - WinPrAsn1Decoder_init
        - readContextualHeader
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1488,29'
          Dst:             WinPrAsn1Decoder_init
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1490,8'
          Dst:             readContextualHeader
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1494,9'
          Dst:             WinPrAsn1DecReadSequence
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1501,2'
          Dst:             Stream_Seek
    - functionName:    WinPrAsn1Decoder_init
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/asn1.h'
      linkageType:     InternalLinkage
      functionLinenumber: 78
      functionLinenumberEnd: 81
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_Init
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/asn1.h:79,25'
          Dst:             Stream_Init
    - functionName:    readContextualHeader
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/asn1/asn1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1371
      functionLinenumberEnd: 1392
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          98
      EdgeCount:       28
      CyclomaticComplexity: 4
      functionsReached:
        - WinPrAsn1DecPeekContextualTag
        - winpr_int_assert
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1375,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1376,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1377,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1380,8'
          Dst:             WinPrAsn1DecPeekContextualTag
    - functionName:    WinPrAsn1DecReadSequence
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/asn1/asn1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1302
      functionLinenumberEnd: 1314
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          67
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - readConstructed
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1306,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1307,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1309,8'
          Dst:             readConstructed
    - functionName:    readConstructed
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/asn1/asn1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1271
      functionLinenumberEnd: 1283
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          73
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_ConstPointer
        - Stream_Seek
        - Stream_StaticConstInit
        - readTagAndLen
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1275,8'
          Dst:             readTagAndLen
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1276,15'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1280,42'
          Dst:             Stream_ConstPointer
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1280,2'
          Dst:             Stream_StaticConstInit
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1281,2'
          Dst:             Stream_Seek
    - functionName:    readTagAndLen
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/asn1/asn1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 940
      functionLinenumberEnd: 952
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          62
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_GetRemainingLength
        - Stream_Read
        - readLen
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:943,6'
          Dst:             Stream_GetRemainingLength
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:946,2'
          Dst:             Stream_Read
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:947,13'
          Dst:             readLen
    - functionName:    Stream_Read
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 732
      functionLinenumberEnd: 738
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          80
      EdgeCount:       25
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_GetRemainingCapacity
        - Stream_Seek
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:733,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:734,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:735,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:735,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:737,3'
          Dst:             Stream_Seek
    - functionName:    WinPrAsn1DecPeekContextualTag
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/asn1/asn1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1360
      functionLinenumberEnd: 1366
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          44
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_ConstPointer
        - Stream_GetRemainingLength
        - Stream_StaticConstInit
        - readContextualTag
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1362,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1364,35'
          Dst:             Stream_ConstPointer
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1365,25'
          Dst:             Stream_GetRemainingLength
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1364,2'
          Dst:             Stream_StaticConstInit
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1366,9'
          Dst:             readContextualTag
    - functionName:    readContextualTag
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/asn1/asn1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1333
      functionLinenumberEnd: 1346
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          62
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - readConstructed
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1337,8'
          Dst:             readConstructed
    - functionName:    WinPrAsn1DecReadContextualOctetString
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/asn1/asn1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1463
      functionLinenumberEnd: 1481
      functionDepth:   0
      returnType:      size_t
      argCount:        5
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          68
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_Seek
        - WinPrAsn1DecReadOctetString
        - WinPrAsn1Decoder_init
        - readContextualHeader
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1466,29'
          Dst:             WinPrAsn1Decoder_init
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1468,8'
          Dst:             readContextualHeader
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1472,9'
          Dst:             WinPrAsn1DecReadOctetString
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1479,2'
          Dst:             Stream_Seek
    - functionName:    WinPrAsn1DecReadOctetString
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/asn1/asn1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1116
      functionLinenumberEnd: 1117
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WinPrAsn1DecReadMemoryChunkLike
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1117,9'
          Dst:             WinPrAsn1DecReadMemoryChunkLike
    - functionName:    WinPrAsn1DecReadMemoryChunkLike
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/asn1/asn1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1072
      functionLinenumberEnd: 1106
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          156
      EdgeCount:       36
      CyclomaticComplexity: 8
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_Pointer
        - Stream_Read
        - Stream_Seek
        - readTagAndLen
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1077,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1078,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1080,8'
          Dst:             readTagAndLen
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1083,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1097,3'
          Dst:             Stream_Read
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1101,18'
          Dst:             Stream_Pointer
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1102,3'
          Dst:             Stream_Seek
    - functionName:    Stream_Pointer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1312
      functionLinenumberEnd: 1314
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          31
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1313,3'
          Dst:             winpr_int_assert
    - functionName:    WinPrAsn1DecReadContextualOID
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/asn1/asn1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1440
      functionLinenumberEnd: 1458
      functionDepth:   0
      returnType:      size_t
      argCount:        5
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          68
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_Seek
        - WinPrAsn1DecReadOID
        - WinPrAsn1Decoder_init
        - readContextualHeader
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1443,29'
          Dst:             WinPrAsn1Decoder_init
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1445,8'
          Dst:             readContextualHeader
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1449,9'
          Dst:             WinPrAsn1DecReadOID
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1456,2'
          Dst:             Stream_Seek
    - functionName:    WinPrAsn1DecReadOID
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/asn1/asn1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1109
      functionLinenumberEnd: 1111
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WinPrAsn1DecReadMemoryChunkLike
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1110,9'
          Dst:             WinPrAsn1DecReadMemoryChunkLike
    - functionName:    WinPrAsn1DecReadContextualInteger
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/asn1/asn1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1418
      functionLinenumberEnd: 1436
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          65
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_Seek
        - WinPrAsn1DecReadInteger
        - WinPrAsn1Decoder_init
        - readContextualHeader
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1421,29'
          Dst:             WinPrAsn1Decoder_init
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1423,8'
          Dst:             readContextualHeader
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1427,9'
          Dst:             WinPrAsn1DecReadInteger
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1434,2'
          Dst:             Stream_Seek
    - functionName:    WinPrAsn1DecReadInteger
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/asn1/asn1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1061
      functionLinenumberEnd: 1062
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WinPrAsn1DecReadIntegerLike
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1062,9'
          Dst:             WinPrAsn1DecReadIntegerLike
    - functionName:    WinPrAsn1DecReadIntegerLike
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/asn1/asn1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1019
      functionLinenumberEnd: 1058
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         39
      ICount:          179
      EdgeCount:       46
      CyclomaticComplexity: 9
      functionsReached:
        - Stream_GetRemainingLength
        - readTagAndLen
        - stream_read_u8
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1023,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1024,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1026,15'
          Dst:             readTagAndLen
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1029,18'
          Dst:             Stream_GetRemainingLength
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1035,2'
          Dst:             stream_read_u8
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1048,3'
          Dst:             stream_read_u8
    - functionName:    WinPrAsn1DecReadContextualBool
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/asn1/asn1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1396
      functionLinenumberEnd: 1414
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          65
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_Seek
        - WinPrAsn1DecReadBoolean
        - WinPrAsn1Decoder_init
        - readContextualHeader
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1399,29'
          Dst:             WinPrAsn1Decoder_init
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1401,8'
          Dst:             readContextualHeader
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1405,9'
          Dst:             WinPrAsn1DecReadBoolean
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1412,2'
          Dst:             Stream_Seek
    - functionName:    WinPrAsn1DecReadBoolean
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/asn1/asn1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 997
      functionLinenumberEnd: 1015
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         28
      ICount:          114
      EdgeCount:       32
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_GetRemainingLength
        - readTagAndLen
        - stream_read_u8
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1003,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1004,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1006,8'
          Dst:             readTagAndLen
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1009,6'
          Dst:             Stream_GetRemainingLength
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1012,2'
          Dst:             stream_read_u8
    - functionName:    WinPrAsn1DecReadContextualTag
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/asn1/asn1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1350
      functionLinenumberEnd: 1355
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          62
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - readContextualTag
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1351,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1352,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1353,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1355,9'
          Dst:             readContextualTag
    - functionName:    WinPrAsn1DecReadSet
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/asn1/asn1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1317
      functionLinenumberEnd: 1329
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          67
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - readConstructed
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1321,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1322,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1324,8'
          Dst:             readConstructed
    - functionName:    WinPrAsn1DecReadApp
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/asn1/asn1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1286
      functionLinenumberEnd: 1299
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          76
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - readConstructed
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1290,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1291,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1293,8'
          Dst:             readConstructed
    - functionName:    WinPrAsn1DecReadNull
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/asn1/asn1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1255
      functionLinenumberEnd: 1267
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          71
      EdgeCount:       20
      CyclomaticComplexity: 5
      functionsReached:
        - readTagAndLen
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1260,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1262,8'
          Dst:             readTagAndLen
    - functionName:    stream_read_i8
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 188
      functionLinenumberEnd: 192
      functionDepth:   0
      returnType:      char
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_Seek
        - winpr_Data_Get_INT8
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:189,18'
          Dst:             winpr_Data_Get_INT8
        - Src:             'winpr/include/winpr/stream.h:191,4'
          Dst:             Stream_Seek
    - functionName:    read2digits
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/asn1/asn1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1175
      functionLinenumberEnd: 1191
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          86
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - stream_read_i8
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1179,2'
          Dst:             stream_read_i8
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1185,2'
          Dst:             stream_read_i8
    - functionName:    WinPrAsn1DecReadUtcTime
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/asn1/asn1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1194
      functionLinenumberEnd: 1252
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         61
      ICount:          291
      EdgeCount:       78
      CyclomaticComplexity: 19
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_ConstPointer
        - Stream_GetRemainingLength
        - Stream_Seek
        - Stream_StaticConstInit
        - read2digits
        - readTagAndLen
        - stream_read_i8
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1202,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1203,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1205,8'
          Dst:             readTagAndLen
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1208,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1211,28'
          Dst:             Stream_ConstPointer
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1211,2'
          Dst:             Stream_StaticConstInit
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1213,6'
          Dst:             read2digits
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1218,6'
          Dst:             read2digits
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1223,6'
          Dst:             read2digits
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1228,6'
          Dst:             read2digits
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1233,6'
          Dst:             read2digits
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1238,6'
          Dst:             read2digits
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1243,6'
          Dst:             Stream_GetRemainingLength
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1245,3'
          Dst:             stream_read_i8
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1248,2'
          Dst:             Stream_Seek
    - functionName:    WinPrAsn1DecReadGeneralString
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/asn1/asn1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1148
      functionLinenumberEnd: 1172
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          119
      EdgeCount:       29
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_Read
        - readTagAndLen
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1154,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1155,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1157,8'
          Dst:             readTagAndLen
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1160,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1168,2'
          Dst:             Stream_Read
    - functionName:    WinPrAsn1DecReadIA5String
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/asn1/asn1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1121
      functionLinenumberEnd: 1145
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          119
      EdgeCount:       29
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_Read
        - readTagAndLen
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1127,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1128,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1130,8'
          Dst:             readTagAndLen
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1133,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1141,2'
          Dst:             Stream_Read
    - functionName:    WinPrAsn1DecReadEnumerated
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/asn1/asn1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1066
      functionLinenumberEnd: 1067
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WinPrAsn1DecReadIntegerLike
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:1067,9'
          Dst:             WinPrAsn1DecReadIntegerLike
    - functionName:    WinPrAsn1DecReadTagLenValue
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/asn1/asn1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 976
      functionLinenumberEnd: 994
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          128
      EdgeCount:       34
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_Pointer
        - Stream_Seek
        - Stream_StaticInit
        - readTagAndLen
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:978,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:979,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:980,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:981,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:983,8'
          Dst:             readTagAndLen
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:987,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:991,36'
          Dst:             Stream_Pointer
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:991,2'
          Dst:             Stream_StaticInit
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:992,2'
          Dst:             Stream_Seek
    - functionName:    WinPrAsn1DecPeekTagAndLen
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/asn1/asn1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 964
      functionLinenumberEnd: 971
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          48
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_ConstPointer
        - Stream_GetRemainingLength
        - Stream_StaticConstInit
        - readTagAndLen
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:967,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:969,48'
          Dst:             Stream_ConstPointer
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:970,38'
          Dst:             Stream_GetRemainingLength
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:969,15'
          Dst:             Stream_StaticConstInit
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:971,9'
          Dst:             readTagAndLen
    - functionName:    WinPrAsn1DecReadTagAndLen
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/asn1/asn1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 955
      functionLinenumberEnd: 960
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          62
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - readTagAndLen
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:956,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:957,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:958,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:960,9'
          Dst:             readTagAndLen
    - functionName:    Stream_Peek
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 825
      functionLinenumberEnd: 830
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          77
      EdgeCount:       25
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_GetRemainingCapacity
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:826,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:827,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:828,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:828,3'
          Dst:             winpr_int_assert
    - functionName:    WinPrAsn1DecPeekTag
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/asn1/asn1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 892
      functionLinenumberEnd: 900
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          61
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_GetRemainingLength
        - Stream_Peek
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:893,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:894,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:896,6'
          Dst:             Stream_GetRemainingLength
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:898,2'
          Dst:             Stream_Peek
    - functionName:    WinPrAsn1Decoder_InitMem
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/asn1/asn1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 883
      functionLinenumberEnd: 889
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          55
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_StaticConstInit
        - winpr_int_assert
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:884,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:885,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:888,2'
          Dst:             Stream_StaticConstInit
    - functionName:    WinPrAsn1Decoder_Init
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/asn1/asn1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 873
      functionLinenumberEnd: 879
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          52
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:874,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:875,2'
          Dst:             winpr_int_assert
    - functionName:    WinPrAsn1EncToStream
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/asn1/asn1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 850
      functionLinenumberEnd: 869
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          111
      EdgeCount:       27
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_Buffer
        - Stream_EnsureRemainingCapacity
        - Stream_Write
        - WinPrAsn1EncStreamSize
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:853,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:854,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:856,7'
          Dst:             WinPrAsn1EncStreamSize
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:859,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:864,15'
          Dst:             Stream_Buffer
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:865,3'
          Dst:             Stream_Write
    - functionName:    WinPrAsn1EncStreamSize
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/asn1/asn1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 831
      functionLinenumberEnd: 847
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          91
      EdgeCount:       24
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:834,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:835,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:839,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    Stream_Buffer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1285
      functionLinenumberEnd: 1287
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          31
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1286,3'
          Dst:             winpr_int_assert
    - functionName:    Stream_Write
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1187
      functionLinenumberEnd: 1196
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          77
      EdgeCount:       25
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_GetRemainingCapacity
        - Stream_Seek
        - winpr_int_assert
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1190,4'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1191,4'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1192,4'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:1192,4'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1194,4'
          Dst:             Stream_Seek
    - functionName:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 323
      functionLinenumberEnd: 335
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          65
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintTextMessageVA
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:326,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:328,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:332,4'
          Dst:             WLog_PrintTextMessageVA
    - functionName:    WinPrAsn1EncContextualUtcTime
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/asn1/asn1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 800
      functionLinenumberEnd: 828
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         94
      ICount:          254
      EdgeCount:       95
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_Write_INT8_unchecked
        - Stream_Write_UINT8_unchecked
        - asn1_getWriteStream
        - winpr_int_assert
        - write2digit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:804,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:805,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:806,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:807,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:808,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:810,7'
          Dst:             asn1_getWriteStream
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:813,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:813,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:813,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:814,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:816,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:817,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:819,2'
          Dst:             write2digit
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:820,2'
          Dst:             write2digit
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:821,2'
          Dst:             write2digit
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:822,2'
          Dst:             write2digit
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:823,2'
          Dst:             write2digit
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:824,2'
          Dst:             write2digit
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:825,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:825,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:825,2'
          Dst:             Stream_Write_INT8_unchecked
    - functionName:    asn1_getWriteStream
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/asn1/asn1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 487
      functionLinenumberEnd: 496
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          59
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_Buffer
        - Stream_StaticInit
        - asn1enc_get_free_chunk
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:489,21'
          Dst:             asn1enc_get_free_chunk
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:493,9'
          Dst:             Stream_Buffer
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:494,2'
          Dst:             Stream_StaticInit
    - functionName:    Stream_Write_UINT8_unchecked
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 873
      functionLinenumberEnd: 880
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          68
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - winpr_Data_Write_UINT8
        - winpr_int_assert
      functionUses:    37
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:874,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:875,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:876,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:876,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:878,3'
          Dst:             winpr_Data_Write_UINT8
    - functionName:    write2digit
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/asn1/asn1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 768
      functionLinenumberEnd: 771
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         31
      ICount:          100
      EdgeCount:       31
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_Write_UINT8_unchecked
        - winpr_int_assert
      functionUses:    12
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:769,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:769,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:769,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:770,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:770,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:770,2'
          Dst:             Stream_Write_UINT8_unchecked
    - functionName:    Stream_Write_INT8_unchecked
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 848
      functionLinenumberEnd: 855
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          68
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - winpr_Data_Write_INT8
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:849,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:850,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:851,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:851,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:853,3'
          Dst:             winpr_Data_Write_INT8
    - functionName:    WinPrAsn1EncUtcTime
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/asn1/asn1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 774
      functionLinenumberEnd: 796
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         58
      ICount:          173
      EdgeCount:       59
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_Write_INT8_unchecked
        - Stream_Write_UINT8_unchecked
        - asn1_getWriteStream
        - winpr_int_assert
        - write2digit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:778,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:779,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:780,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:782,7'
          Dst:             asn1_getWriteStream
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:785,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:786,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:788,2'
          Dst:             write2digit
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:789,2'
          Dst:             write2digit
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:790,2'
          Dst:             write2digit
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:791,2'
          Dst:             write2digit
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:792,2'
          Dst:             write2digit
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:793,2'
          Dst:             write2digit
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:794,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:794,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:794,2'
          Dst:             Stream_Write_INT8_unchecked
    - functionName:    WinPrAsn1EncContextualIA5String
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/asn1/asn1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 758
      functionLinenumberEnd: 764
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          43
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - WinPrAsn1EncContextualMemoryChunk
        - strlen
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:760,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:762,14'
          Dst:             strlen
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:764,9'
          Dst:             WinPrAsn1EncContextualMemoryChunk
    - functionName:    WinPrAsn1EncContextualMemoryChunk
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/asn1/asn1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 721
      functionLinenumberEnd: 742
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - char
        - char
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         52
      ICount:          179
      EdgeCount:       53
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_Write
        - Stream_Write_UINT8_unchecked
        - asn1WriteLen
        - asn1_getWriteStream
        - lenBytes
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:726,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:727,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:728,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:729,12'
          Dst:             lenBytes
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:731,15'
          Dst:             lenBytes
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:732,7'
          Dst:             asn1_getWriteStream
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:735,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:735,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:735,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:736,2'
          Dst:             asn1WriteLen
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:738,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:738,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:738,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:739,2'
          Dst:             asn1WriteLen
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:740,2'
          Dst:             Stream_Write
    - functionName:    lenBytes
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/asn1/asn1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 295
      functionLinenumberEnd: 306
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          49
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    10
      BranchProfiles:  []
      Callsites:       []
    - functionName:    asn1WriteLen
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/asn1/asn1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 309
      functionLinenumberEnd: 335
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         131
      ICount:          291
      EdgeCount:       135
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_Write_UINT16_BE_unchecked
        - Stream_Write_UINT24_BE_unchecked
        - Stream_Write_UINT32_BE_unchecked
        - Stream_Write_UINT8_unchecked
        - winpr_int_assert
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:312,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:312,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:312,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:316,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:317,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:317,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:317,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:321,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:322,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:322,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:322,3'
          Dst:             Stream_Write_UINT16_BE_unchecked
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:326,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:327,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:327,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:327,3'
          Dst:             Stream_Write_UINT24_BE_unchecked
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:331,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:332,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:333,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:333,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:333,3'
          Dst:             Stream_Write_UINT32_BE_unchecked
    - functionName:    WinPrAsn1EncContextualOctetString
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/asn1/asn1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 752
      functionLinenumberEnd: 753
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WinPrAsn1EncContextualMemoryChunk
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:753,9'
          Dst:             WinPrAsn1EncContextualMemoryChunk
    - functionName:    WinPrAsn1EncContextualOID
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/asn1/asn1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 746
      functionLinenumberEnd: 747
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WinPrAsn1EncContextualMemoryChunk
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:747,9'
          Dst:             WinPrAsn1EncContextualMemoryChunk
    - functionName:    WinPrAsn1EncGeneralString
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/asn1/asn1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 710
      functionLinenumberEnd: 715
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          40
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - WinPrAsn1EncMemoryChunk
        - strlen
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:712,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:714,14'
          Dst:             strlen
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:715,9'
          Dst:             WinPrAsn1EncMemoryChunk
    - functionName:    WinPrAsn1EncMemoryChunk
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/asn1/asn1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 673
      functionLinenumberEnd: 688
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          116
      EdgeCount:       33
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_Write
        - Stream_Write_UINT8_unchecked
        - asn1WriteLen
        - asn1_getWriteStream
        - lenBytes
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:677,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:678,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:679,12'
          Dst:             lenBytes
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:681,7'
          Dst:             asn1_getWriteStream
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:684,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:684,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:684,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:685,2'
          Dst:             asn1WriteLen
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:686,2'
          Dst:             Stream_Write
    - functionName:    WinPrAsn1EncIA5String
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/asn1/asn1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 701
      functionLinenumberEnd: 706
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          40
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - WinPrAsn1EncMemoryChunk
        - strlen
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:703,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:705,14'
          Dst:             strlen
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:706,9'
          Dst:             WinPrAsn1EncMemoryChunk
    - functionName:    WinPrAsn1EncOctetString
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/asn1/asn1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 696
      functionLinenumberEnd: 697
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WinPrAsn1EncMemoryChunk
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:697,9'
          Dst:             WinPrAsn1EncMemoryChunk
    - functionName:    WinPrAsn1EncOID
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/asn1/asn1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 691
      functionLinenumberEnd: 692
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WinPrAsn1EncMemoryChunk
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:692,9'
          Dst:             WinPrAsn1EncMemoryChunk
    - functionName:    WinPrAsn1EncContextualBoolean
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/asn1/asn1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 651
      functionLinenumberEnd: 669
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - char
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         76
      ICount:          182
      EdgeCount:       77
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_Write_UINT8_unchecked
        - asn1_getWriteStream
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:655,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:656,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:658,7'
          Dst:             asn1_getWriteStream
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:661,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:661,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:661,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:662,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:664,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:665,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:666,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:666,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:666,2'
          Dst:             Stream_Write_UINT8_unchecked
    - functionName:    WinPrAsn1EncBoolean
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/asn1/asn1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 636
      functionLinenumberEnd: 648
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         40
      ICount:          104
      EdgeCount:       41
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_Write_UINT8_unchecked
        - asn1_getWriteStream
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:640,7'
          Dst:             asn1_getWriteStream
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:643,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:644,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:645,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:645,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:645,2'
          Dst:             Stream_Write_UINT8_unchecked
    - functionName:    WinPrAsn1EncContextualEnumerated
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/asn1/asn1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 631
      functionLinenumberEnd: 632
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - char
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WinPrAsn1EncContextualIntegerLike
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:632,9'
          Dst:             WinPrAsn1EncContextualIntegerLike
    - functionName:    WinPrAsn1EncContextualIntegerLike
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/asn1/asn1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 587
      functionLinenumberEnd: 621
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - char
        - char
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         123
      ICount:          313
      EdgeCount:       123
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_Write_INT16_BE_unchecked
        - Stream_Write_INT32_BE_unchecked
        - Stream_Write_INT8_unchecked
        - Stream_Write_UINT8_unchecked
        - asn1IntegerLen
        - asn1WriteLen
        - asn1_getWriteStream
        - lenBytes
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/asn1/asn1.c:603,2'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:591,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:592,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:594,21'
          Dst:             asn1IntegerLen
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:595,28'
          Dst:             lenBytes
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:596,7'
          Dst:             asn1_getWriteStream
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:599,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:599,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:599,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:600,2'
          Dst:             asn1WriteLen
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:602,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:602,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:602,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:606,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:607,4'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:607,4'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:607,4'
          Dst:             Stream_Write_INT8_unchecked
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:610,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:611,4'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:611,4'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:611,4'
          Dst:             Stream_Write_INT16_BE_unchecked
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:614,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:615,4'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:615,4'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:615,4'
          Dst:             Stream_Write_INT32_BE_unchecked
    - functionName:    WinPrAsn1EncContextualInteger
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/asn1/asn1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 625
      functionLinenumberEnd: 626
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - char
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WinPrAsn1EncContextualIntegerLike
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:626,9'
          Dst:             WinPrAsn1EncContextualIntegerLike
    - functionName:    WinPrAsn1EncEnumerated
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/asn1/asn1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 581
      functionLinenumberEnd: 582
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WinPrAsn1EncIntegerLike
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:582,9'
          Dst:             WinPrAsn1EncIntegerLike
    - functionName:    WinPrAsn1EncIntegerLike
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/asn1/asn1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 546
      functionLinenumberEnd: 573
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - char
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         97
      ICount:          236
      EdgeCount:       97
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_Write_INT16_BE_unchecked
        - Stream_Write_INT32_BE_unchecked
        - Stream_Write_INT8_unchecked
        - Stream_Write_UINT8_unchecked
        - asn1IntegerLen
        - asn1_getWriteStream
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/asn1/asn1.c:555,2'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:550,21'
          Dst:             asn1IntegerLen
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:551,7'
          Dst:             asn1_getWriteStream
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:554,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:554,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:554,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:558,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:559,4'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:559,4'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:559,4'
          Dst:             Stream_Write_INT8_unchecked
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:562,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:563,4'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:563,4'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:563,4'
          Dst:             Stream_Write_INT16_BE_unchecked
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:566,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:567,4'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:567,4'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:567,4'
          Dst:             Stream_Write_INT32_BE_unchecked
    - functionName:    WinPrAsn1EncInteger
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/asn1/asn1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 576
      functionLinenumberEnd: 577
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WinPrAsn1EncIntegerLike
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:577,9'
          Dst:             WinPrAsn1EncIntegerLike
    - functionName:    WinPrAsn1EncContextualRawContent
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/asn1/asn1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 515
      functionLinenumberEnd: 532
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         38
      ICount:          140
      EdgeCount:       39
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_Write
        - Stream_Write_UINT8_unchecked
        - asn1WriteLen
        - asn1_getWriteStream
        - lenBytes
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:519,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:520,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:521,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:523,19'
          Dst:             lenBytes
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:524,7'
          Dst:             asn1_getWriteStream
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:527,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:527,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:527,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:528,2'
          Dst:             asn1WriteLen
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:530,2'
          Dst:             Stream_Write
    - functionName:    WinPrAsn1EncRawContent
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/asn1/asn1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 499
      functionLinenumberEnd: 511
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          74
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_Write
        - asn1_getWriteStream
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:503,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:504,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:506,7'
          Dst:             asn1_getWriteStream
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:509,2'
          Dst:             Stream_Write
    - functionName:    WinPrAsn1EncEndContainer
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/asn1/asn1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 398
      functionLinenumberEnd: 484
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         69
      ICount:          367
      EdgeCount:       70
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_Buffer
        - Stream_StaticInit
        - Stream_Write_UINT8_unchecked
        - WLog_Print_dbg_tag
        - asn1WriteLen
        - lenBytes
        - winpr_int_assert
      functionUses:    7
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/asn1/asn1.c:419,2'
          Branch Sides:    []
        - Branch String:   'winpr/libwinpr/utils/asn1/asn1.c:465,2'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:409,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:410,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:423,27'
          Dst:             lenBytes
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:427,27'
          Dst:             lenBytes
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:431,27'
          Dst:             lenBytes
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:435,27'
          Dst:             lenBytes
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:441,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:448,26'
          Dst:             lenBytes
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:458,23'
          Dst:             Stream_Buffer
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:458,2'
          Dst:             Stream_StaticInit
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:461,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:461,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:461,3'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:462,3'
          Dst:             asn1WriteLen
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:471,4'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:471,4'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:471,4'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:472,4'
          Dst:             asn1WriteLen
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:477,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    WinPrAsn1EncContextualOctetStringContainer
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/asn1/asn1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 393
      functionLinenumberEnd: 394
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - getAsn1Container
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:394,9'
          Dst:             getAsn1Container
    - functionName:    getAsn1Container
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/asn1/asn1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 339
      functionLinenumberEnd: 354
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - char
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          67
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - asn1enc_get_free_chunk
        - asn1enc_get_free_container
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:344,21'
          Dst:             asn1enc_get_free_chunk
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:348,14'
          Dst:             asn1enc_get_free_container
    - functionName:    WinPrAsn1EncOctetStringContainer
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/asn1/asn1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 388
      functionLinenumberEnd: 389
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - getAsn1Container
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:389,9'
          Dst:             getAsn1Container
    - functionName:    WinPrAsn1EncContextualContainer
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/asn1/asn1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 383
      functionLinenumberEnd: 384
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - getAsn1Container
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:384,9'
          Dst:             getAsn1Container
    - functionName:    WinPrAsn1EncContextualSetContainer
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/asn1/asn1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 378
      functionLinenumberEnd: 379
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - getAsn1Container
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:379,9'
          Dst:             getAsn1Container
    - functionName:    WinPrAsn1EncContextualSeqContainer
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/asn1/asn1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 373
      functionLinenumberEnd: 374
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - getAsn1Container
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:374,9'
          Dst:             getAsn1Container
    - functionName:    WinPrAsn1EncSetContainer
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/asn1/asn1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 368
      functionLinenumberEnd: 369
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - getAsn1Container
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:369,9'
          Dst:             getAsn1Container
    - functionName:    WinPrAsn1EncSeqContainer
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/asn1/asn1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 363
      functionLinenumberEnd: 364
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - getAsn1Container
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:364,9'
          Dst:             getAsn1Container
    - functionName:    WinPrAsn1EncAppContainer
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/asn1/asn1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 357
      functionLinenumberEnd: 359
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          37
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - getAsn1Container
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:358,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:359,9'
          Dst:             getAsn1Container
    - functionName:    WinPrAsn1Encoder_FreeNoNull
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/asn1/asn1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 189
      functionLinenumberEnd: 201
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          67
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_Free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:198,3'
          Dst:             Stream_Free
    - functionName:    WinPrAsn1Encoder_Free
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/asn1/asn1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 182
      functionLinenumberEnd: 186
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          33
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - WinPrAsn1Encoder_FreeNoNull
        - winpr_int_assert
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:183,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:184,2'
          Dst:             WinPrAsn1Encoder_FreeNoNull
    - functionName:    WinPrAsn1Encoder_Reset
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/asn1/asn1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 172
      functionLinenumberEnd: 179
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          42
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:173,2'
          Dst:             winpr_int_assert
    - functionName:    WinPrAsn1Encoder_New
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/asn1/asn1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 151
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          70
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_New
        - calloc
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:152,26'
          Dst:             calloc
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:157,14'
          Dst:             Stream_New
    - functionName:    WinPrAsn1FreeOctetString
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/asn1/asn1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          57
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - WinPrAsn1FreeOID
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:87,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:91,2'
          Dst:             WinPrAsn1FreeOID
    - functionName:    WinPrAsn1FreeOID
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/asn1/asn1.c'
      linkageType:     InternalLinkage
      functionLinenumber: 78
      functionLinenumberEnd: 83
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          38
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/asn1/asn1.c:79,2'
          Dst:             winpr_int_assert
    - functionName:    ntlm_av_pair_valid
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 296
      functionLinenumberEnd: 314
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - short
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          64
      EdgeCount:       28
      CyclomaticComplexity: 15
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:297,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    ntlm_md5_update_uint32_be
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 444
      functionLinenumberEnd: 450
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          43
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_Digest_Update
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:450,9'
          Dst:             winpr_Digest_Update
    - 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:
        - ''
        - ''
      BBCount:         9
      ICount:          48
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/endian.h:236,3'
          Dst:             winpr_int_assert
    - functionName:    ntlm_av_pair_set_len
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 97
      functionLinenumberEnd: 100
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          34
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_Data_Write_UINT16
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:98,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:99,2'
          Dst:             winpr_Data_Write_UINT16
    - functionName:    ntlm_av_pair_set_id
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 91
      functionLinenumberEnd: 94
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          34
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_Data_Write_UINT16
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:92,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:93,2'
          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:
        - ''
      BBCount:         13
      ICount:          68
      EdgeCount:       14
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/endian.h:60,3'
          Dst:             winpr_int_assert
    - functionName:    ntlm_av_pair_get_next_offset
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 205
      functionLinenumberEnd: 214
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          49
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - ntlm_av_pair_get_len
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:210,7'
          Dst:             ntlm_av_pair_get_len
    - functionName:    ntlm_av_pair_get_len
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 150
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          50
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - winpr_Data_Get_UINT16
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:157,23'
          Dst:             winpr_Data_Get_UINT16
    - functionName:    ntlm_av_pair_check_data
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 45
      functionLinenumberEnd: 52
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          61
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - ntlm_av_pair_get_next_offset
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:49,7'
          Dst:             ntlm_av_pair_get_next_offset
    - 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:
        - ''
        - ''
      BBCount:         9
      ICount:          45
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_Data_Write_UINT16
        - winpr_int_assert
      functionUses:    5
      BranchProfiles:  []
      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:    ntlm_av_pair_add_copy
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 318
      functionLinenumberEnd: 337
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         39
      ICount:          170
      EdgeCount:       46
      CyclomaticComplexity: 9
      functionsReached:
        - ntlm_av_pair_add
        - ntlm_av_pair_check
        - ntlm_av_pair_get_id
        - ntlm_av_pair_get_len
        - ntlm_av_pair_get_value_pointer
        - ntlm_av_pair_valid
        - winpr_int_assert
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:322,7'
          Dst:             ntlm_av_pair_check
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:325,7'
          Dst:             ntlm_av_pair_get_id
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:328,7'
          Dst:             ntlm_av_pair_get_len
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:331,7'
          Dst:             ntlm_av_pair_valid
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:334,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:335,53'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:335,53'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:336,26'
          Dst:             ntlm_av_pair_get_value_pointer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:335,9'
          Dst:             ntlm_av_pair_add
    - functionName:    ntlm_av_pair_check
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 217
      functionLinenumberEnd: 218
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ntlm_av_pair_check_data
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:218,9'
          Dst:             ntlm_av_pair_check_data
    - functionName:    ntlm_av_pair_get_id
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 127
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          57
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - winpr_Data_Get_UINT16
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:123,22'
          Dst:             winpr_Data_Get_UINT16
    - functionName:    ntlm_av_pair_get_value_pointer
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 197
      functionLinenumberEnd: 202
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          45
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:198,2'
          Dst:             winpr_int_assert
    - functionName:    ntlm_av_pair_add
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 273
      functionLinenumberEnd: 293
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - size_t
        - int
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          97
      EdgeCount:       21
      CyclomaticComplexity: 5
      functionsReached:
        - ntlm_av_pair_get
        - ntlm_av_pair_get_value_pointer
        - ntlm_av_pair_list_init
        - ntlm_av_pair_next
        - ntlm_av_pair_set_id
        - ntlm_av_pair_set_len
        - winpr_int_assert
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:277,12'
          Dst:             ntlm_av_pair_get
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:283,2'
          Dst:             ntlm_av_pair_set_id
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:284,2'
          Dst:             ntlm_av_pair_set_len
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:287,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:288,3'
          Dst:             ntlm_av_pair_get_value_pointer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:291,12'
          Dst:             ntlm_av_pair_next
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:292,9'
          Dst:             ntlm_av_pair_list_init
    - functionName:    ntlm_av_pair_get
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 242
      functionLinenumberEnd: 268
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          118
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - ntlm_av_pair_check
        - ntlm_av_pair_get_id
        - ntlm_av_pair_next
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:247,7'
          Dst:             ntlm_av_pair_check
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:250,20'
          Dst:             ntlm_av_pair_get_id
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:260,13'
          Dst:             ntlm_av_pair_next
    - functionName:    ntlm_av_pair_next
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 222
      functionLinenumberEnd: 238
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          79
      EdgeCount:       16
      CyclomaticComplexity: 6
      functionsReached:
        - ntlm_av_pair_check
        - ntlm_av_pair_get_next_offset
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:227,7'
          Dst:             ntlm_av_pair_check
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:230,7'
          Dst:             ntlm_av_pair_get_next_offset
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:235,7'
          Dst:             ntlm_av_pair_check
    - functionName:    ntlm_av_pair_list_init
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 103
      functionLinenumberEnd: 112
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          46
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ntlm_av_pair_set_id
        - ntlm_av_pair_set_len
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:109,2'
          Dst:             ntlm_av_pair_set_id
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:110,2'
          Dst:             ntlm_av_pair_set_len
    - functionName:    ntlm_compute_channel_bindings
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 454
      functionLinenumberEnd: 500
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         31
      ICount:          172
      EdgeCount:       41
      CyclomaticComplexity: 12
      functionsReached:
        - ntlm_md5_update_uint32_be
        - winpr_Digest_Final
        - winpr_Digest_Free
        - winpr_Digest_Init
        - winpr_Digest_New
        - winpr_Digest_Update
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:460,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:468,14'
          Dst:             winpr_Digest_New
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:471,7'
          Dst:             winpr_Digest_Init
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:477,7'
          Dst:             ntlm_md5_update_uint32_be
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:480,7'
          Dst:             ntlm_md5_update_uint32_be
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:483,7'
          Dst:             ntlm_md5_update_uint32_be
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:486,7'
          Dst:             ntlm_md5_update_uint32_be
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:489,7'
          Dst:             ntlm_md5_update_uint32_be
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:492,7'
          Dst:             winpr_Digest_Update
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:495,7'
          Dst:             winpr_Digest_Final
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:499,2'
          Dst:             winpr_Digest_Free
    - functionName:    ntlm_compute_single_host_data
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 503
      functionLinenumberEnd: 518
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          49
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_Data_Write_UINT32
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:504,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:513,2'
          Dst:             winpr_Data_Write_UINT32
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:514,2'
          Dst:             winpr_Data_Write_UINT32
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:515,2'
          Dst:             winpr_Data_Write_UINT32
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:516,2'
          Dst:             winpr_Data_Write_UINT32
    - functionName:    ntlm_construct_authenticate_target_info
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 568
      functionLinenumberEnd: 798
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         137
      ICount:          782
      EdgeCount:       179
      CyclomaticComplexity: 44
      functionsReached:
        - ntlm_SecBufferRealloc
        - ntlm_av_pair_add
        - ntlm_av_pair_add_copy
        - ntlm_av_pair_get
        - ntlm_av_pair_get_len
        - ntlm_av_pair_list_init
        - ntlm_av_pair_list_size
        - ntlm_compute_channel_bindings
        - ntlm_compute_single_host_data
        - ntlm_is_unicode_string_empty
        - sspi_SecBufferFree
        - winpr_Data_Write_UINT32
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:588,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:593,19'
          Dst:             ntlm_av_pair_get
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:595,21'
          Dst:             ntlm_av_pair_get
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:597,20'
          Dst:             ntlm_av_pair_get
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:599,22'
          Dst:             ntlm_av_pair_get
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:601,18'
          Dst:             ntlm_av_pair_get
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:603,16'
          Dst:             ntlm_av_pair_get
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:609,8'
          Dst:             ntlm_av_pair_get_len
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:618,8'
          Dst:             ntlm_av_pair_get_len
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:627,8'
          Dst:             ntlm_av_pair_get_len
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:636,8'
          Dst:             ntlm_av_pair_get_len
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:645,8'
          Dst:             ntlm_av_pair_get_len
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:663,3'
          Dst:             ntlm_compute_single_host_data
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:680,3'
          Dst:             ntlm_compute_channel_bindings
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:682,8'
          Dst:             ntlm_is_unicode_string_empty
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:690,17'
          Dst:             ntlm_av_pair_list_size
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:695,30'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:695,30'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:694,8'
          Dst:             ntlm_SecBufferRealloc
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:702,7'
          Dst:             ntlm_av_pair_list_init
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:707,8'
          Dst:             ntlm_av_pair_add_copy
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:714,8'
          Dst:             ntlm_av_pair_add_copy
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:721,8'
          Dst:             ntlm_av_pair_add_copy
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:728,8'
          Dst:             ntlm_av_pair_add_copy
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:735,8'
          Dst:             ntlm_av_pair_add_copy
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:742,8'
          Dst:             ntlm_av_pair_add_copy
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:750,3'
          Dst:             winpr_Data_Write_UINT32
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:752,8'
          Dst:             ntlm_av_pair_add
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:759,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:760,8'
          Dst:             ntlm_av_pair_add
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:768,8'
          Dst:             ntlm_av_pair_add
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:772,8'
          Dst:             ntlm_is_unicode_string_empty
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:774,9'
          Dst:             ntlm_av_pair_add
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:785,7'
          Dst:             ntlm_av_pair_get
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:788,8'
          Dst:             ntlm_av_pair_get_len
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:796,2'
          Dst:             sspi_SecBufferFree
    - functionName:    ntlm_is_unicode_string_empty
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 406
      functionLinenumberEnd: 413
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          61
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - winpr_int_assert
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:407,2'
          Dst:             winpr_int_assert
    - functionName:    ntlm_av_pair_list_size
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 191
      functionLinenumberEnd: 193
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ntlm_construct_challenge_target_info
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 521
      functionLinenumberEnd: 564
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         45
      ICount:          256
      EdgeCount:       55
      CyclomaticComplexity: 12
      functionsReached:
        - ntlm_SecBufferRealloc
        - ntlm_av_pair_add
        - ntlm_av_pair_list_init
        - ntlm_av_pair_list_size
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:524,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:530,25'
          Dst:             ntlm_av_pair_list_size
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:532,30'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:532,30'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:531,8'
          Dst:             ntlm_SecBufferRealloc
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:539,7'
          Dst:             ntlm_av_pair_list_init
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:542,7'
          Dst:             ntlm_av_pair_add
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:546,7'
          Dst:             ntlm_av_pair_add
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:550,7'
          Dst:             ntlm_av_pair_add
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:554,7'
          Dst:             ntlm_av_pair_add
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:558,7'
          Dst:             ntlm_av_pair_add
    - functionName:    ntlm_from_unicode_string_utf8
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 385
      functionLinenumberEnd: 403
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         55
      ICount:          220
      EdgeCount:       65
      CyclomaticComplexity: 12
      functionsReached:
        - ConvertUtf8NToWCharAlloc
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:391,17'
          Dst:             ConvertUtf8NToWCharAlloc
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:400,17'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:400,17'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:401,24'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:401,24'
          Dst:             winpr_int_assert
    - functionName:    ntlm_from_unicode_string_w
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 370
      functionLinenumberEnd: 382
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         55
      ICount:          213
      EdgeCount:       65
      CyclomaticComplexity: 12
      functionsReached:
        - wcsndup
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:376,17'
          Dst:             wcsndup
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:379,17'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:379,17'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:380,24'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:380,24'
          Dst:             winpr_int_assert
    - functionName:    ntlm_clone_unicode_string
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 352
      functionLinenumberEnd: 367
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          101
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - calloc
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:360,17'
          Dst:             calloc
    - functionName:    ntlm_free_unicode_string
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 340
      functionLinenumberEnd: 349
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          49
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    13
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ntlm_av_pair_list_length
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 130
      functionLinenumberEnd: 146
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         41
      ICount:          149
      EdgeCount:       46
      CyclomaticComplexity: 7
      functionsReached:
        - ntlm_av_pair_get
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:134,12'
          Dst:             ntlm_av_pair_get
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:141,22'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:141,22'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:143,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_av_pairs.c:144,2'
          Dst:             winpr_int_assert
    - functionName:    Stream_Write_UINT16_unchecked
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 925
      functionLinenumberEnd: 932
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          68
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - winpr_Data_Write_UINT16
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:926,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:927,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:928,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:928,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:930,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:
        - ''
        - ''
      BBCount:         9
      ICount:          48
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      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:
        - ''
        - ''
      BBCount:         9
      ICount:          45
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_Data_Write_UINT16
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      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_Write_UINT32_unchecked
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1087
      functionLinenumberEnd: 1094
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          68
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - winpr_Data_Write_UINT32
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1088,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1089,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1090,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:1090,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1092,3'
          Dst:             winpr_Data_Write_UINT32
    - functionName:    Stream_Length
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1345
      functionLinenumberEnd: 1347
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          31
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1346,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:
        - ''
      BBCount:         13
      ICount:          68
      EdgeCount:       14
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/endian.h:60,3'
          Dst:             winpr_int_assert
    - functionName:    stream_read_u16_le
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 196
      functionLinenumberEnd: 204
      functionDepth:   0
      returnType:      short
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          64
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_GetRemainingLength
        - Stream_Seek
        - winpr_Data_Get_UINT16
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:198,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:199,3'
          Dst:             Stream_GetRemainingLength
        - Src:             'winpr/include/winpr/stream.h:199,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:201,20'
          Dst:             winpr_Data_Get_UINT16
        - Src:             'winpr/include/winpr/stream.h:203,4'
          Dst:             Stream_Seek
    - functionName:    Stream_Seek
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 157
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          51
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:158,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:159,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:159,3'
          Dst:             winpr_int_assert
    - functionName:    stream_read_u32_le
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 244
      functionLinenumberEnd: 252
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          64
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_GetRemainingLength
        - Stream_Seek
        - winpr_Data_Get_UINT32
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:246,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:247,3'
          Dst:             Stream_GetRemainingLength
        - Src:             'winpr/include/winpr/stream.h:247,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:249,20'
          Dst:             winpr_Data_Get_UINT32
        - Src:             'winpr/include/winpr/stream.h:251,4'
          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:
        - ''
      BBCount:         13
      ICount:          64
      EdgeCount:       14
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/endian.h:114,3'
          Dst:             winpr_int_assert
    - functionName:    ntlm_free_message_fields_buffer
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 465
      functionLinenumberEnd: 476
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          49
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    13
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ntlm_write_message_integrity_check
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 540
      functionLinenumberEnd: 558
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         34
      ICount:          121
      EdgeCount:       37
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_CheckAndLogRequiredCapacityEx
        - Stream_GetPosition
        - Stream_SetPosition
        - Stream_Write
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:541,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:542,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:543,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:544,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:546,21'
          Dst:             Stream_GetPosition
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:548,7'
          Dst:             Stream_CheckAndLogRequiredCapacityEx
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:551,7'
          Dst:             Stream_SetPosition
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:553,7'
          Dst:             Stream_CheckAndLogRequiredCapacityEx
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:556,2'
          Dst:             Stream_Write
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:557,9'
          Dst:             Stream_SetPosition
    - functionName:    Stream_GetPosition
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1363
      functionLinenumberEnd: 1366
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          54
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    12
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1364,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1365,3'
          Dst:             winpr_int_assert
    - functionName:    Stream_Write
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1187
      functionLinenumberEnd: 1196
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          77
      EdgeCount:       25
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_GetRemainingCapacity
        - Stream_Seek
        - winpr_int_assert
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1190,4'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1191,4'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1192,4'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:1192,4'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1194,4'
          Dst:             Stream_Seek
    - functionName:    ntlm_write_AuthenticateMessage
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1304
      functionLinenumberEnd: 1499
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         129
      ICount:          912
      EdgeCount:       170
      CyclomaticComplexity: 43
      functionsReached:
        - Stream_Buffer
        - Stream_GetPosition
        - Stream_StaticInit
        - ntlm_SecBufferRealloc
        - ntlm_change_state
        - ntlm_compute_message_integrity_check
        - ntlm_get_version_info
        - ntlm_populate_message_header
        - ntlm_write_message_fields
        - ntlm_write_message_fields_buffer
        - ntlm_write_message_header
        - ntlm_write_message_integrity_check
        - ntlm_write_negotiate_flags
        - ntlm_write_version_info
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1310,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1311,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1314,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1318,15'
          Dst:             Stream_StaticInit
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1353,8'
          Dst:             ntlm_get_version_info
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1400,7'
          Dst:             ntlm_populate_message_header
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1402,7'
          Dst:             ntlm_write_message_header
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1404,7'
          Dst:             ntlm_write_message_fields
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1407,7'
          Dst:             ntlm_write_message_fields
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1410,7'
          Dst:             ntlm_write_message_fields
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1412,7'
          Dst:             ntlm_write_message_fields
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1414,7'
          Dst:             ntlm_write_message_fields
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1416,7'
          Dst:             ntlm_write_message_fields
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1420,7'
          Dst:             ntlm_write_negotiate_flags
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1425,8'
          Dst:             ntlm_write_version_info
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1433,42'
          Dst:             Stream_GetPosition
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1434,46'
          Dst:             Stream_GetPosition
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1434,8'
          Dst:             ntlm_write_message_integrity_check
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1441,8'
          Dst:             ntlm_write_message_fields_buffer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1445,7'
          Dst:             ntlm_write_message_fields_buffer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1450,8'
          Dst:             ntlm_write_message_fields_buffer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1456,8'
          Dst:             ntlm_write_message_fields_buffer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1460,7'
          Dst:             ntlm_write_message_fields_buffer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1466,8'
          Dst:             ntlm_write_message_fields_buffer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1471,11'
          Dst:             Stream_GetPosition
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1472,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1474,7'
          Dst:             ntlm_SecBufferRealloc
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1477,2'
          Dst:             Stream_Buffer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1483,8'
          Dst:             ntlm_compute_message_integrity_check
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1486,8'
          Dst:             ntlm_write_message_integrity_check
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1497,2'
          Dst:             ntlm_change_state
    - functionName:    ntlm_populate_message_header
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 357
      functionLinenumberEnd: 362
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          38
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:358,2'
          Dst:             winpr_int_assert
    - functionName:    ntlm_write_message_header
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 342
      functionLinenumberEnd: 354
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         32
      ICount:          98
      EdgeCount:       33
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredCapacityEx
        - Stream_Write
        - Stream_Write_UINT32_unchecked
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:343,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:344,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:346,7'
          Dst:             Stream_CheckAndLogRequiredCapacityEx
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:350,2'
          Dst:             Stream_Write
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:351,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:351,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:351,2'
          Dst:             Stream_Write_UINT32_unchecked
    - functionName:    ntlm_write_message_fields
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 382
      functionLinenumberEnd: 398
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         63
      ICount:          190
      EdgeCount:       65
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_CheckAndLogRequiredCapacityEx
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - winpr_int_assert
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:384,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:385,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:391,7'
          Dst:             Stream_CheckAndLogRequiredCapacityEx
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:394,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:394,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:394,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:395,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:395,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:395,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:396,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:396,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:396,2'
          Dst:             Stream_Write_UINT32_unchecked
    - functionName:    ntlm_write_negotiate_flags
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 505
      functionLinenumberEnd: 518
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          96
      EdgeCount:       33
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredCapacityEx
        - Stream_Write_UINT32_unchecked
        - WLog_Print_dbg_tag
        - ntlm_negotiate_flags_string
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:507,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:508,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:510,7'
          Dst:             Stream_CheckAndLogRequiredCapacityEx
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:515,2'
          Dst:             ntlm_negotiate_flags_string
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:515,2'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:516,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:516,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:516,2'
          Dst:             Stream_Write_UINT32_unchecked
    - functionName:    ntlm_write_message_fields_buffer
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 448
      functionLinenumberEnd: 462
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         23
      ICount:          95
      EdgeCount:       26
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_CheckAndLogRequiredCapacityEx
        - Stream_SetPosition
        - Stream_Write
        - winpr_int_assert
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:449,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:450,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:454,8'
          Dst:             Stream_SetPosition
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:456,8'
          Dst:             Stream_CheckAndLogRequiredCapacityEx
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:459,3'
          Dst:             Stream_Write
    - functionName:    Stream_Buffer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1285
      functionLinenumberEnd: 1287
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          31
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1286,3'
          Dst:             winpr_int_assert
    - functionName:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 323
      functionLinenumberEnd: 335
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          65
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintTextMessageVA
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:326,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:328,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:332,4'
          Dst:             WLog_PrintTextMessageVA
    - functionName:    ntlm_read_message_integrity_check
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 522
      functionLinenumberEnd: 536
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         36
      ICount:          108
      EdgeCount:       37
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_GetPosition
        - Stream_Read
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:523,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:524,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:525,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:526,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:527,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:529,12'
          Dst:             Stream_GetPosition
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:531,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:534,2'
          Dst:             Stream_Read
    - functionName:    Stream_Read
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 732
      functionLinenumberEnd: 738
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          80
      EdgeCount:       25
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_GetRemainingCapacity
        - Stream_Seek
        - winpr_int_assert
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:733,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:734,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:735,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:735,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:737,3'
          Dst:             Stream_Seek
    - functionName:    ntlm_read_AuthenticateMessage
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1002
      functionLinenumberEnd: 1294
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         154
      ICount:          948
      EdgeCount:       207
      CyclomaticComplexity: 55
      functionsReached:
        - Stream_Buffer
        - Stream_GetPosition
        - Stream_SetPosition
        - Stream_StaticConstInit
        - WLog_Print_dbg_tag
        - calloc
        - memcmp
        - ntlm_SecBufferRealloc
        - ntlm_SetContextWorkstationX
        - ntlm_av_pair_get
        - ntlm_av_pair_get_value_pointer
        - ntlm_change_state
        - ntlm_compute_lm_v2_response
        - ntlm_compute_message_integrity_check
        - ntlm_compute_ntlm_v2_response
        - ntlm_decrypt_random_session_key
        - ntlm_free_authenticate_message
        - ntlm_generate_client_sealing_key
        - ntlm_generate_client_signing_key
        - ntlm_generate_exported_session_key
        - ntlm_generate_key_exchange_key
        - ntlm_generate_server_sealing_key
        - ntlm_generate_server_signing_key
        - ntlm_init_rc4_seal_states
        - ntlm_move_buffer
        - ntlm_read_message_fields
        - ntlm_read_message_fields_buffer
        - ntlm_read_message_header
        - ntlm_read_message_integrity_check
        - ntlm_read_negotiate_flags
        - ntlm_read_ntlm_v2_response
        - ntlm_read_version_info
        - sspi_SecBufferFree
        - winpr_Data_Get_UINT32
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1010,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1011,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1014,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1017,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1019,2'
          Dst:             ntlm_free_authenticate_message
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1021,15'
          Dst:             Stream_StaticConstInit
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1026,7'
          Dst:             ntlm_read_message_header
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1029,7'
          Dst:             ntlm_read_message_fields
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1033,7'
          Dst:             ntlm_read_message_fields
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1037,7'
          Dst:             ntlm_read_message_fields
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1040,7'
          Dst:             ntlm_read_message_fields
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1043,7'
          Dst:             ntlm_read_message_fields
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1046,7'
          Dst:             ntlm_read_message_fields
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1051,7'
          Dst:             ntlm_read_negotiate_flags
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1062,8'
          Dst:             ntlm_read_version_info
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1066,24'
          Dst:             Stream_GetPosition
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1069,7'
          Dst:             ntlm_read_message_fields_buffer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1072,7'
          Dst:             ntlm_read_message_fields_buffer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1075,7'
          Dst:             ntlm_read_message_fields_buffer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1078,7'
          Dst:             ntlm_read_message_fields_buffer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1082,7'
          Dst:             ntlm_read_message_fields_buffer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1086,6'
          Dst:             ntlm_SetContextWorkstationX
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1094,18'
          Dst:             Stream_StaticConstInit
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1101,8'
          Dst:             ntlm_read_ntlm_v2_response
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1105,3'
          Dst:             sspi_SecBufferFree
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1106,34'
          Dst:             ntlm_move_buffer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1108,3'
          Dst:             sspi_SecBufferFree
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1113,7'
          Dst:             ntlm_av_pair_get
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1118,22'
          Dst:             ntlm_av_pair_get_value_pointer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1121,12'
          Dst:             winpr_Data_Get_UINT32
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1125,7'
          Dst:             ntlm_read_message_fields_buffer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1138,11'
          Dst:             Stream_GetPosition
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1139,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1141,7'
          Dst:             ntlm_SecBufferRealloc
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1144,2'
          Dst:             Stream_Buffer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1146,7'
          Dst:             Stream_SetPosition
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1152,8'
          Dst:             ntlm_read_message_integrity_check
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1166,41'
          Dst:             calloc
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1177,43'
          Dst:             calloc
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1189,30'
          Dst:             ntlm_compute_lm_v2_response
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1198,30'
          Dst:             ntlm_compute_ntlm_v2_response
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1207,7'
          Dst:             ntlm_generate_key_exchange_key
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1210,7'
          Dst:             ntlm_decrypt_random_session_key
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1213,7'
          Dst:             ntlm_generate_exported_session_key
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1220,8'
          Dst:             ntlm_compute_message_integrity_check
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1227,7'
          Dst:             memcmp
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1230,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1258,7'
          Dst:             memcmp
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1260,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1274,7'
          Dst:             ntlm_generate_client_signing_key
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1276,7'
          Dst:             ntlm_generate_server_signing_key
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1279,7'
          Dst:             ntlm_generate_client_sealing_key
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1281,7'
          Dst:             ntlm_generate_server_sealing_key
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1284,7'
          Dst:             ntlm_init_rc4_seal_states
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:1289,2'
          Dst:             ntlm_change_state
    - functionName:    ntlm_free_authenticate_message
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 64
      functionLinenumberEnd: 73
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ntlm_free_message_fields_buffer
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:67,2'
          Dst:             ntlm_free_message_fields_buffer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:68,2'
          Dst:             ntlm_free_message_fields_buffer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:69,2'
          Dst:             ntlm_free_message_fields_buffer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:70,2'
          Dst:             ntlm_free_message_fields_buffer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:71,2'
          Dst:             ntlm_free_message_fields_buffer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:72,2'
          Dst:             ntlm_free_message_fields_buffer
    - functionName:    ntlm_read_message_header
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 310
      functionLinenumberEnd: 339
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          110
      EdgeCount:       27
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_Read
        - WLog_Print_dbg_tag
        - ntlm_message_type_string
        - stream_read_u32_le
        - strncmp
        - winpr_BinToHexStringBuffer
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:311,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:312,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:314,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:317,2'
          Dst:             Stream_Read
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:318,2'
          Dst:             stream_read_u32_le
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:320,6'
          Dst:             strncmp
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:323,3'
          Dst:             winpr_BinToHexStringBuffer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:326,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:333,3'
          Dst:             ntlm_message_type_string
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:333,3'
          Dst:             ntlm_message_type_string
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:333,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    ntlm_read_message_fields
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 366
      functionLinenumberEnd: 379
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          79
      EdgeCount:       25
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - ntlm_free_message_fields_buffer
        - stream_read_u16_le
        - stream_read_u32_le
        - winpr_int_assert
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:367,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:368,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:370,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:373,2'
          Dst:             ntlm_free_message_fields_buffer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:375,2'
          Dst:             stream_read_u16_le
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:376,2'
          Dst:             stream_read_u16_le
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:377,2'
          Dst:             stream_read_u32_le
    - functionName:    ntlm_read_negotiate_flags
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 479
      functionLinenumberEnd: 502
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          104
      EdgeCount:       30
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - WLog_Print_dbg_tag
        - ntlm_negotiate_flags_string
        - stream_read_u32_le
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:482,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:483,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:484,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:486,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:489,2'
          Dst:             stream_read_u32_le
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:493,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:498,2'
          Dst:             ntlm_negotiate_flags_string
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:498,2'
          Dst:             WLog_Print_dbg_tag
    - functionName:    ntlm_read_message_fields_buffer
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 401
      functionLinenumberEnd: 445
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         27
      ICount:          160
      EdgeCount:       32
      CyclomaticComplexity: 7
      functionsReached:
        - Stream_Length
        - Stream_Read
        - Stream_SetPosition
        - WLog_Print_dbg_tag
        - ntlm_free_message_fields_buffer
        - winpr_int_assert
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:402,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:403,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:405,2'
          Dst:             ntlm_free_message_fields_buffer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:412,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:419,16'
          Dst:             Stream_Length
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:421,4'
          Dst:             Stream_Length
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:421,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:431,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:436,8'
          Dst:             Stream_SetPosition
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:438,4'
          Dst:             ntlm_free_message_fields_buffer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:441,3'
          Dst:             Stream_Read
    - functionName:    ntlm_move_buffer
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 85
      functionLinenumberEnd: 97
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          55
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:87,2'
          Dst:             winpr_int_assert
    - functionName:    ntlm_write_ChallengeMessage
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 894
      functionLinenumberEnd: 999
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         68
      ICount:          432
      EdgeCount:       88
      CyclomaticComplexity: 22
      functionsReached:
        - Stream_Buffer
        - Stream_CheckAndLogRequiredCapacityEx
        - Stream_GetPosition
        - Stream_StaticInit
        - Stream_Write
        - ntlm_SecBufferRealloc
        - ntlm_change_state
        - ntlm_construct_challenge_target_info
        - ntlm_generate_server_challenge
        - ntlm_generate_timestamp
        - ntlm_get_version_info
        - ntlm_populate_message_header
        - ntlm_write_message_fields
        - ntlm_write_message_fields_buffer
        - ntlm_write_message_header
        - ntlm_write_negotiate_flags
        - ntlm_write_version_info
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:900,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:901,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:905,15'
          Dst:             Stream_StaticInit
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:910,7'
          Dst:             ntlm_get_version_info
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:912,7'
          Dst:             ntlm_generate_server_challenge
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:914,2'
          Dst:             ntlm_generate_timestamp
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:916,7'
          Dst:             ntlm_construct_challenge_target_info
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:921,7'
          Dst:             ntlm_populate_message_header
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:925,7'
          Dst:             ntlm_write_message_header
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:950,7'
          Dst:             ntlm_write_message_fields
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:953,7'
          Dst:             ntlm_write_negotiate_flags
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:956,7'
          Dst:             Stream_CheckAndLogRequiredCapacityEx
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:959,2'
          Dst:             Stream_Write
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:960,2'
          Dst:             Stream_Write
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:963,7'
          Dst:             ntlm_write_message_fields
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:968,8'
          Dst:             ntlm_write_version_info
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:975,8'
          Dst:             ntlm_write_message_fields_buffer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:981,8'
          Dst:             ntlm_write_message_fields_buffer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:985,11'
          Dst:             Stream_GetPosition
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:986,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:989,7'
          Dst:             ntlm_SecBufferRealloc
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:992,2'
          Dst:             Stream_Buffer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:997,2'
          Dst:             ntlm_change_state
    - functionName:    ntlm_secbuffer_move
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 101
      functionLinenumberEnd: 108
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          51
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:102,2'
          Dst:             winpr_int_assert
    - functionName:    ntlm_read_ChallengeMessage
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 726
      functionLinenumberEnd: 891
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         90
      ICount:          558
      EdgeCount:       125
      CyclomaticComplexity: 37
      functionsReached:
        - Stream_Buffer
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_GetPosition
        - Stream_Read
        - Stream_StaticConstInit
        - ntlm_SecBufferRealloc
        - ntlm_av_pair_get
        - ntlm_av_pair_get_value_pointer
        - ntlm_change_state
        - ntlm_compute_lm_v2_response
        - ntlm_compute_ntlm_v2_response
        - ntlm_construct_authenticate_target_info
        - ntlm_encrypt_random_session_key
        - ntlm_free_challenge_message
        - ntlm_generate_client_challenge
        - ntlm_generate_client_sealing_key
        - ntlm_generate_client_signing_key
        - ntlm_generate_exported_session_key
        - ntlm_generate_key_exchange_key
        - ntlm_generate_random_session_key
        - ntlm_generate_server_sealing_key
        - ntlm_generate_server_signing_key
        - ntlm_generate_timestamp
        - ntlm_init_rc4_seal_states
        - ntlm_move_buffer
        - ntlm_read_message_fields
        - ntlm_read_message_fields_buffer
        - ntlm_read_message_header
        - ntlm_read_negotiate_flags
        - ntlm_read_version_info
        - ntlm_secbuffer_move
        - sspi_SecBufferFree
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:736,7'
          Dst:             ntlm_generate_client_challenge
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:740,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:742,2'
          Dst:             ntlm_free_challenge_message
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:744,15'
          Dst:             Stream_StaticConstInit
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:749,16'
          Dst:             Stream_GetPosition
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:751,7'
          Dst:             ntlm_read_message_header
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:754,7'
          Dst:             ntlm_read_message_fields
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:757,7'
          Dst:             ntlm_read_negotiate_flags
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:762,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:765,2'
          Dst:             Stream_Read
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:767,2'
          Dst:             Stream_Read
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:769,7'
          Dst:             ntlm_read_message_fields
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:774,8'
          Dst:             ntlm_read_version_info
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:779,18'
          Dst:             Stream_GetPosition
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:784,8'
          Dst:             ntlm_read_message_fields_buffer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:792,8'
          Dst:             ntlm_read_message_fields_buffer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:795,3'
          Dst:             sspi_SecBufferFree
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:796,34'
          Dst:             ntlm_move_buffer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:799,7'
          Dst:             ntlm_av_pair_get
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:804,16'
          Dst:             ntlm_av_pair_get_value_pointer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:821,7'
          Dst:             ntlm_SecBufferRealloc
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:825,3'
          Dst:             Stream_Buffer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:833,8'
          Dst:             ntlm_construct_authenticate_target_info
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:836,3'
          Dst:             sspi_SecBufferFree
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:837,34'
          Dst:             ntlm_secbuffer_move
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:840,2'
          Dst:             ntlm_generate_timestamp
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:843,30'
          Dst:             ntlm_compute_lm_v2_response
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:853,7'
          Dst:             ntlm_compute_ntlm_v2_response
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:861,7'
          Dst:             ntlm_generate_key_exchange_key
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:863,7'
          Dst:             ntlm_generate_random_session_key
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:865,7'
          Dst:             ntlm_generate_exported_session_key
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:867,7'
          Dst:             ntlm_encrypt_random_session_key
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:872,7'
          Dst:             ntlm_generate_client_signing_key
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:874,7'
          Dst:             ntlm_generate_server_signing_key
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:877,7'
          Dst:             ntlm_generate_client_sealing_key
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:879,7'
          Dst:             ntlm_generate_server_sealing_key
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:882,7'
          Dst:             ntlm_init_rc4_seal_states
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:887,2'
          Dst:             ntlm_change_state
    - functionName:    ntlm_free_challenge_message
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 56
      functionLinenumberEnd: 61
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          30
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ntlm_free_message_fields_buffer
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:59,2'
          Dst:             ntlm_free_message_fields_buffer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:60,2'
          Dst:             ntlm_free_message_fields_buffer
    - functionName:    ntlm_write_NegotiateMessage
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 638
      functionLinenumberEnd: 723
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         55
      ICount:          358
      EdgeCount:       69
      CyclomaticComplexity: 16
      functionsReached:
        - Stream_GetPosition
        - Stream_StaticInit
        - ntlm_SecBufferRealloc
        - ntlm_change_state
        - ntlm_get_version_info
        - ntlm_populate_message_header
        - ntlm_write_message_fields
        - ntlm_write_message_header
        - ntlm_write_negotiate_flags
        - ntlm_write_version_info
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:643,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:644,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:648,15'
          Dst:             Stream_StaticInit
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:653,7'
          Dst:             ntlm_populate_message_header
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:681,8'
          Dst:             ntlm_get_version_info
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:687,7'
          Dst:             ntlm_write_message_header
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:690,7'
          Dst:             ntlm_write_negotiate_flags
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:695,7'
          Dst:             ntlm_write_message_fields
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:700,7'
          Dst:             ntlm_write_message_fields
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:705,8'
          Dst:             ntlm_write_version_info
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:709,11'
          Dst:             Stream_GetPosition
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:710,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:713,7'
          Dst:             ntlm_SecBufferRealloc
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:721,2'
          Dst:             ntlm_change_state
    - functionName:    ntlm_read_NegotiateMessage
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 561
      functionLinenumberEnd: 635
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         52
      ICount:          247
      EdgeCount:       63
      CyclomaticComplexity: 13
      functionsReached:
        - Stream_GetPosition
        - Stream_StaticConstInit
        - ntlm_SecBufferRealloc
        - ntlm_change_state
        - ntlm_free_negotiate_message
        - ntlm_read_message_fields
        - ntlm_read_message_fields_buffer
        - ntlm_read_message_header
        - ntlm_read_negotiate_flags
        - ntlm_read_version_info
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:564,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:565,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:568,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:570,2'
          Dst:             ntlm_free_negotiate_message
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:574,15'
          Dst:             Stream_StaticConstInit
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:579,7'
          Dst:             ntlm_read_message_header
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:582,7'
          Dst:             ntlm_read_negotiate_flags
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:593,8'
          Dst:             ntlm_read_message_fields
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:600,8'
          Dst:             ntlm_read_message_fields
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:606,8'
          Dst:             ntlm_read_version_info
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:610,7'
          Dst:             ntlm_read_message_fields_buffer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:613,7'
          Dst:             ntlm_read_message_fields_buffer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:616,24'
          Dst:             Stream_GetPosition
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:617,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:622,7'
          Dst:             ntlm_SecBufferRealloc
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:630,2'
          Dst:             ntlm_change_state
    - functionName:    ntlm_free_negotiate_message
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 47
      functionLinenumberEnd: 53
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          30
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ntlm_free_message_fields_buffer
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:51,2'
          Dst:             ntlm_free_message_fields_buffer
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:52,2'
          Dst:             ntlm_free_message_fields_buffer
    - functionName:    ntlm_get_negotiate_string
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 112
      functionLinenumberEnd: 178
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         66
      ICount:          333
      EdgeCount:       97
      CyclomaticComplexity: 33
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ntlm_free_messages
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 76
      functionLinenumberEnd: 82
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ntlm_free_authenticate_message
        - ntlm_free_challenge_message
        - ntlm_free_negotiate_message
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:79,2'
          Dst:             ntlm_free_negotiate_message
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:80,2'
          Dst:             ntlm_free_challenge_message
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_message.c:81,2'
          Dst:             ntlm_free_authenticate_message
    - functionName:    schannel_openssl_free
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Schannel/schannel_openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 604
      functionLinenumberEnd: 611
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    schannel_openssl_new
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Schannel/schannel_openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 589
      functionLinenumberEnd: 601
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         9
      ICount:          42
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - calloc
        - winpr_InitializeSSL
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:590,7'
          Dst:             winpr_InitializeSSL
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:593,49'
          Dst:             calloc
    - functionName:    schannel_openssl_decrypt_message
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Schannel/schannel_openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 552
      functionLinenumberEnd: 586
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         39
      ICount:          254
      EdgeCount:       47
      CyclomaticComplexity: 10
      functionsReached:
        - BIO_write
        - ERR_clear_error
        - SSL_get_error
        - SSL_read
        - WLog_Print_dbg_tag
        - openssl_get_ssl_error_string
        - sspi_FindSecBuffer
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:558,12'
          Dst:             sspi_FindSecBuffer
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:563,2'
          Dst:             ERR_clear_error
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:564,11'
          Dst:             BIO_write
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:566,12'
          Dst:             SSL_read
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:570,15'
          Dst:             SSL_get_error
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:571,3'
          Dst:             openssl_get_ssl_error_string
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:571,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:580,35'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:580,35'
          Dst:             winpr_int_assert
    - 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:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    BIO_write
      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:    SSL_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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SSL_get_error
      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:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    openssl_get_ssl_error_string
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Schannel/schannel_openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 53
      functionLinenumberEnd: 75
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          43
      EdgeCount:       16
      CyclomaticComplexity: 9
      functionsReached: []
      functionUses:    5
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:54,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 323
      functionLinenumberEnd: 335
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          65
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintTextMessageVA
      functionUses:    24
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:326,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:328,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:332,4'
          Dst:             WLog_PrintTextMessageVA
    - functionName:    schannel_openssl_encrypt_message
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Schannel/schannel_openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 503
      functionLinenumberEnd: 549
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         29
      ICount:          249
      EdgeCount:       38
      CyclomaticComplexity: 11
      functionsReached:
        - BIO_read
        - ERR_clear_error
        - SSL_get_error
        - SSL_write
        - WLog_Print_dbg_tag
        - openssl_get_ssl_error_string
        - sspi_FindSecBuffer
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:509,24'
          Dst:             sspi_FindSecBuffer
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:510,22'
          Dst:             sspi_FindSecBuffer
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:511,25'
          Dst:             sspi_FindSecBuffer
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:516,11'
          Dst:             SSL_write
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:521,15'
          Dst:             SSL_get_error
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:522,3'
          Dst:             openssl_get_ssl_error_string
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:522,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:525,2'
          Dst:             ERR_clear_error
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:526,11'
          Dst:             BIO_read
    - functionName:    SSL_write
      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:    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:    schannel_openssl_server_process_tokens
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Schannel/schannel_openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 435
      functionLinenumberEnd: 500
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         94
      ICount:          438
      EdgeCount:       115
      CyclomaticComplexity: 23
      functionsReached:
        - BIO_read
        - BIO_write
        - ERR_clear_error
        - SSL_accept
        - SSL_get_error
        - WLog_Print_dbg_tag
        - openssl_get_ssl_error_string
        - sspi_FindSecBuffer
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:445,13'
          Dst:             sspi_FindSecBuffer
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:450,3'
          Dst:             ERR_clear_error
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:451,12'
          Dst:             BIO_write
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:453,13'
          Dst:             SSL_accept
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:457,16'
          Dst:             SSL_get_error
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:458,4'
          Dst:             openssl_get_ssl_error_string
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:458,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:465,3'
          Dst:             ERR_clear_error
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:466,12'
          Dst:             BIO_read
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:469,16'
          Dst:             SSL_get_error
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:470,4'
          Dst:             openssl_get_ssl_error_string
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:470,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:477,13'
          Dst:             sspi_FindSecBuffer
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:484,28'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:484,28'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:487,4'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:487,4'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:489,24'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:489,24'
          Dst:             winpr_int_assert
    - functionName:    SSL_accept
      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:    schannel_openssl_client_process_tokens
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Schannel/schannel_openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 366
      functionLinenumberEnd: 430
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         95
      ICount:          431
      EdgeCount:       116
      CyclomaticComplexity: 23
      functionsReached:
        - BIO_read
        - BIO_write
        - ERR_clear_error
        - SSL_connect
        - SSL_get_error
        - WLog_Print_dbg_tag
        - openssl_get_ssl_error_string
        - sspi_FindSecBuffer
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:378,14'
          Dst:             sspi_FindSecBuffer
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:383,4'
          Dst:             ERR_clear_error
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:385,8'
          Dst:             BIO_write
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:390,12'
          Dst:             SSL_connect
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:394,16'
          Dst:             SSL_get_error
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:395,4'
          Dst:             openssl_get_ssl_error_string
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:395,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:401,3'
          Dst:             ERR_clear_error
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:402,12'
          Dst:             BIO_read
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:407,13'
          Dst:             sspi_FindSecBuffer
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:414,28'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:414,28'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:417,4'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:417,4'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:419,24'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:419,24'
          Dst:             winpr_int_assert
    - functionName:    SSL_connect
      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:    schannel_openssl_server_init
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Schannel/schannel_openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 231
      functionLinenumberEnd: 361
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         25
      ICount:          206
      EdgeCount:       35
      CyclomaticComplexity: 12
      functionsReached:
        - BIO_ctrl
        - BIO_new
        - BIO_s_mem
        - SSL_CTX_new
        - SSL_CTX_set_options
        - SSL_new
        - SSL_set_bio
        - SSL_use_certificate_file
        - WLog_Print_dbg_tag
        - get_method
        - schannel_context_cleanup
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:235,29'
          Dst:             get_method
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:235,17'
          Dst:             SSL_CTX_new
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:239,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:276,2'
          Dst:             SSL_CTX_set_options
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:286,17'
          Dst:             SSL_new
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:290,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:294,6'
          Dst:             SSL_use_certificate_file
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:296,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:300,29'
          Dst:             BIO_s_mem
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:300,21'
          Dst:             BIO_new
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:304,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:308,11'
          Dst:             BIO_ctrl
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:312,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:316,30'
          Dst:             BIO_s_mem
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:316,22'
          Dst:             BIO_new
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:320,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:324,11'
          Dst:             BIO_ctrl
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:328,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:332,11'
          Dst:             BIO_ctrl
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:336,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:340,2'
          Dst:             SSL_set_bio
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:345,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:353,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:359,2'
          Dst:             schannel_context_cleanup
    - functionName:    get_method
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Schannel/schannel_openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 102
      functionLinenumberEnd: 119
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - TLS_client_method
        - TLS_server_method
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:108,10'
          Dst:             TLS_server_method
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:116,10'
          Dst:             TLS_client_method
    - functionName:    SSL_CTX_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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SSL_CTX_set_options
      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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SSL_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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SSL_use_certificate_file
      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:    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:    4
      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:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SSL_set_bio
      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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    schannel_context_cleanup
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Schannel/schannel_openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 78
      functionLinenumberEnd: 99
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          112
      EdgeCount:       25
      CyclomaticComplexity: 6
      functionsReached:
        - BIO_free_all
        - SSL_CTX_free
        - SSL_free
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:79,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:85,3'
          Dst:             BIO_free_all
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:89,3'
          Dst:             BIO_free_all
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:93,3'
          Dst:             SSL_free
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:97,3'
          Dst:             SSL_CTX_free
    - 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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SSL_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:    SSL_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:    TLS_server_method
      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:    TLS_client_method
      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:    schannel_openssl_client_init
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/Schannel/schannel_openssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 121
      functionLinenumberEnd: 228
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         44
      ICount:          257
      EdgeCount:       56
      CyclomaticComplexity: 14
      functionsReached:
        - BIO_ctrl
        - BIO_new
        - BIO_s_mem
        - SSL_CTX_new
        - SSL_CTX_set_options
        - SSL_new
        - SSL_set_bio
        - WLog_Print_dbg_tag
        - get_method
        - schannel_context_cleanup
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:124,29'
          Dst:             get_method
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:124,17'
          Dst:             SSL_CTX_new
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:128,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:158,36'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:158,36'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:158,2'
          Dst:             SSL_CTX_set_options
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:159,17'
          Dst:             SSL_new
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:163,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:167,29'
          Dst:             BIO_s_mem
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:167,21'
          Dst:             BIO_new
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:171,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:175,11'
          Dst:             BIO_ctrl
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:179,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:183,30'
          Dst:             BIO_s_mem
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:183,22'
          Dst:             BIO_new
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:187,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:191,11'
          Dst:             BIO_ctrl
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:195,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:199,11'
          Dst:             BIO_ctrl
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:203,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:207,2'
          Dst:             SSL_set_bio
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:212,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:220,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/Schannel/schannel_openssl.c:226,2'
          Dst:             schannel_context_cleanup
    - functionName:    reg_unload_value
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/registry/registry_reg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 434
      functionLinenumberEnd: 448
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          59
      EdgeCount:       35
      CyclomaticComplexity: 19
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/registry/registry_reg.c:438,2'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/registry/registry_reg.c:435,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/registry/registry_reg.c:436,2'
          Dst:             winpr_int_assert
    - functionName:    reg_unload_key
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/registry/registry_reg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 451
      functionLinenumberEnd: 468
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          72
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - reg_unload_value
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/registry/registry_reg.c:454,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/registry/registry_reg.c:455,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/registry/registry_reg.c:462,3'
          Dst:             reg_unload_value
    - functionName:    reg_data_type_string
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/registry/registry_reg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 57
      functionLinenumberEnd: 87
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          77
      EdgeCount:       28
      CyclomaticComplexity: 15
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/registry/registry_reg.c:58,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 323
      functionLinenumberEnd: 335
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          65
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintTextMessageVA
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:326,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:328,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:332,4'
          Dst:             WLog_PrintTextMessageVA
    - functionName:    reg_insert_key
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/registry/registry_reg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 309
      functionLinenumberEnd: 345
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         41
      ICount:          144
      EdgeCount:       46
      CyclomaticComplexity: 7
      functionsReached:
        - _strdup
        - strcmp
        - strtok_s
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/registry/registry_reg.c:314,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/registry/registry_reg.c:315,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/registry/registry_reg.c:316,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/registry/registry_reg.c:317,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/registry/registry_reg.c:319,9'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/registry/registry_reg.c:324,9'
          Dst:             strtok_s
        - Src:             'winpr/libwinpr/registry/registry_reg.c:328,7'
          Dst:             strcmp
        - Src:             'winpr/libwinpr/registry/registry_reg.c:331,23'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/registry/registry_reg.c:341,10'
          Dst:             strtok_s
    - functionName:    reg_load_value
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/registry/registry_reg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 136
      functionLinenumberEnd: 281
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         120
      ICount:          599
      EdgeCount:       143
      CyclomaticComplexity: 25
      functionsReached:
        - WLog_Print_dbg_tag
        - __errno_location
        - _strdup
        - calloc
        - reg_data_type_string
        - strchr
        - strlen
        - strncmp
        - strstr
        - strtoul
        - strtoull
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/registry/registry_reg.c:197,2'
          Branch Sides:    []
      Callsites:
        - Src:             'winpr/libwinpr/registry/registry_reg.c:144,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/registry/registry_reg.c:145,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/registry/registry_reg.c:146,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/registry/registry_reg.c:149,9'
          Dst:             strstr
        - Src:             'winpr/libwinpr/registry/registry_reg.c:159,10'
          Dst:             strchr
        - Src:             'winpr/libwinpr/registry/registry_reg.c:169,16'
          Dst:             calloc
        - Src:             'winpr/libwinpr/registry/registry_reg.c:175,19'
          Dst:             calloc
        - Src:             'winpr/libwinpr/registry/registry_reg.c:186,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/registry/registry_reg.c:187,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/registry/registry_reg.c:188,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/registry/registry_reg.c:190,7'
          Dst:             strncmp
        - Src:             'winpr/libwinpr/registry/registry_reg.c:202,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/registry/registry_reg.c:203,10'
          Dst:             strtoul
        - Src:             'winpr/libwinpr/registry/registry_reg.c:205,9'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/registry/registry_reg.c:207,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/registry/registry_reg.c:216,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/registry/registry_reg.c:217,10'
          Dst:             strtoull
        - Src:             'winpr/libwinpr/registry/registry_reg.c:219,9'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/registry/registry_reg.c:221,5'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/registry/registry_reg.c:230,18'
          Dst:             strchr
        - Src:             'winpr/libwinpr/registry/registry_reg.c:235,23'
          Dst:             strlen
        - Src:             'winpr/libwinpr/registry/registry_reg.c:236,16'
          Dst:             strchr
        - Src:             'winpr/libwinpr/registry/registry_reg.c:240,29'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/registry/registry_reg.c:240,29'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/registry/registry_reg.c:246,25'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/registry/registry_reg.c:253,4'
          Dst:             reg_data_type_string
        - Src:             'winpr/libwinpr/registry/registry_reg.c:253,4'
          Dst:             WLog_Print_dbg_tag
    - functionName:    strtoull
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    reg_load_peek_next_line
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/registry/registry_reg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 303
      functionLinenumberEnd: 305
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          31
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/registry/registry_reg.c:304,2'
          Dst:             winpr_int_assert
    - functionName:    _ftelli64
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wtypes.h'
      linkageType:     InternalLinkage
      functionLinenumber: 503
      functionLinenumberEnd: 504
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ftello64
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/wtypes.h:504,9'
          Dst:             ftello64
    - functionName:    _fseeki64
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wtypes.h'
      linkageType:     InternalLinkage
      functionLinenumber: 497
      functionLinenumberEnd: 498
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fseeko64
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/wtypes.h:498,9'
          Dst:             fseeko64
    - functionName:    reg_load_finish
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/registry/registry_reg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 124
      functionLinenumberEnd: 133
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          40
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    reg_load_key
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/registry/registry_reg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 348
      functionLinenumberEnd: 414
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         43
      ICount:          228
      EdgeCount:       51
      CyclomaticComplexity: 10
      functionsReached:
        - calloc
        - reg_insert_key
        - reg_load_get_next_line
        - reg_load_has_next_line
        - reg_load_peek_next_line
        - reg_load_value
        - strrchr
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/registry/registry_reg.c:353,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/registry/registry_reg.c:354,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/registry/registry_reg.c:356,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/registry/registry_reg.c:358,9'
          Dst:             strrchr
        - Src:             'winpr/libwinpr/registry/registry_reg.c:362,20'
          Dst:             calloc
        - Src:             'winpr/libwinpr/registry/registry_reg.c:379,9'
          Dst:             reg_load_has_next_line
        - Src:             'winpr/libwinpr/registry/registry_reg.c:381,16'
          Dst:             reg_load_peek_next_line
        - Src:             'winpr/libwinpr/registry/registry_reg.c:386,3'
          Dst:             reg_load_get_next_line
        - Src:             'winpr/libwinpr/registry/registry_reg.c:390,4'
          Dst:             reg_load_value
        - Src:             'winpr/libwinpr/registry/registry_reg.c:394,2'
          Dst:             reg_insert_key
    - functionName:    reg_load_has_next_line
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/registry/registry_reg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 284
      functionLinenumberEnd: 289
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          27
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    reg_load_get_next_line
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/registry/registry_reg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 292
      functionLinenumberEnd: 300
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          50
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - strlen
        - strtok_s
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/registry/registry_reg.c:297,19'
          Dst:             strtok_s
        - Src:             'winpr/libwinpr/registry/registry_reg.c:298,21'
          Dst:             strlen
    - functionName:    reg_load_start
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/registry/registry_reg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 90
      functionLinenumberEnd: 121
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         26
      ICount:          151
      EdgeCount:       31
      CyclomaticComplexity: 7
      functionsReached:
        - _fseeki64
        - _ftelli64
        - fread
        - realloc
        - strtok_s
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/registry/registry_reg.c:94,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/registry/registry_reg.c:95,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/registry/registry_reg.c:97,6'
          Dst:             _fseeki64
        - Src:             'winpr/libwinpr/registry/registry_reg.c:99,14'
          Dst:             _ftelli64
        - Src:             'winpr/libwinpr/registry/registry_reg.c:100,6'
          Dst:             _fseeki64
        - Src:             'winpr/libwinpr/registry/registry_reg.c:108,18'
          Dst:             realloc
        - Src:             'winpr/libwinpr/registry/registry_reg.c:114,6'
          Dst:             fread
        - Src:             'winpr/libwinpr/registry/registry_reg.c:119,19'
          Dst:             strtok_s
    - functionName:    reg_type_string
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/registry/registry_reg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 542
      functionLinenumberEnd: 572
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          77
      EdgeCount:       28
      CyclomaticComplexity: 15
      functionsReached: []
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/registry/registry_reg.c:543,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    reg_unload
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/registry/registry_reg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 471
      functionLinenumberEnd: 486
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          67
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - reg_unload_key
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/registry/registry_reg.c:472,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/registry/registry_reg.c:480,4'
          Dst:             reg_unload_key
    - functionName:    reg_close
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/registry/registry_reg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 530
      functionLinenumberEnd: 539
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          46
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - fclose
        - reg_unload
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/registry/registry_reg.c:533,3'
          Dst:             reg_unload
        - Src:             'winpr/libwinpr/registry/registry_reg.c:535,10'
          Dst:             fclose
    - functionName:    reg_load
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/registry/registry_reg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 417
      functionLinenumberEnd: 431
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          51
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - reg_load_finish
        - reg_load_get_next_line
        - reg_load_has_next_line
        - reg_load_key
        - reg_load_start
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/registry/registry_reg.c:418,2'
          Dst:             reg_load_start
        - Src:             'winpr/libwinpr/registry/registry_reg.c:420,9'
          Dst:             reg_load_has_next_line
        - Src:             'winpr/libwinpr/registry/registry_reg.c:422,3'
          Dst:             reg_load_get_next_line
        - Src:             'winpr/libwinpr/registry/registry_reg.c:426,4'
          Dst:             reg_load_key
        - Src:             'winpr/libwinpr/registry/registry_reg.c:430,2'
          Dst:             reg_load_finish
    - functionName:    reg_open
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/registry/registry_reg.c'
      linkageType:     InternalLinkage
      functionLinenumber: 489
      functionLinenumberEnd: 527
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          137
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - calloc
        - reg_close
        - reg_load
        - winpr_GetConfigFilePath
        - winpr_fopen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/registry/registry_reg.c:490,19'
          Dst:             calloc
        - Src:             'winpr/libwinpr/registry/registry_reg.c:496,18'
          Dst:             winpr_GetConfigFilePath
        - Src:             'winpr/libwinpr/registry/registry_reg.c:501,13'
          Dst:             winpr_fopen
        - Src:             'winpr/libwinpr/registry/registry_reg.c:504,13'
          Dst:             winpr_fopen
        - Src:             'winpr/libwinpr/registry/registry_reg.c:507,14'
          Dst:             winpr_fopen
        - Src:             'winpr/libwinpr/registry/registry_reg.c:513,27'
          Dst:             calloc
        - Src:             'winpr/libwinpr/registry/registry_reg.c:521,2'
          Dst:             reg_load
        - Src:             'winpr/libwinpr/registry/registry_reg.c:525,2'
          Dst:             reg_close
    - functionName:    hexchar2nibble
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_compute.c'
      linkageType:     InternalLinkage
      functionLinenumber: 340
      functionLinenumberEnd: 384
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - short
      constantsTouched: []
      argNames:
        - ''
      BBCount:         28
      ICount:          123
      EdgeCount:       54
      CyclomaticComplexity: 28
      functionsReached: []
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:354,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    ntlm_fetch_ntlm_v2_hash
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_compute.c'
      linkageType:     InternalLinkage
      functionLinenumber: 277
      functionLinenumberEnd: 336
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         35
      ICount:          245
      EdgeCount:       42
      CyclomaticComplexity: 9
      functionsReached:
        - NTOWFv2FromHashW
        - SamClose
        - SamFreeEntry
        - SamLookupUserA
        - SamLookupUserW
        - SamOpen
        - WLog_Print_dbg_tag
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:281,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:282,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:285,19'
          Dst:             SamOpen
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:292,11'
          Dst:             SamLookupUserW
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:299,12'
          Dst:             SamLookupUserW
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:305,11'
          Dst:             SamLookupUserA
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:311,12'
          Dst:             SamLookupUserA
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:325,7'
          Dst:             NTOWFv2FromHashW
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:331,2'
          Dst:             SamFreeEntry
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:332,2'
          Dst:             SamClose
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:334,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 323
      functionLinenumberEnd: 335
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          65
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintTextMessageVA
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:326,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:328,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:332,4'
          Dst:             WLog_PrintTextMessageVA
    - functionName:    ntlm_convert_password_hash
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_compute.c'
      linkageType:     InternalLinkage
      functionLinenumber: 386
      functionLinenumberEnd: 423
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          153
      EdgeCount:       30
      CyclomaticComplexity: 6
      functionsReached:
        - WLog_Print_dbg_tag
        - hexchar2nibble
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:389,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:390,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:397,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:406,18'
          Dst:             hexchar2nibble
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:409,4'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:412,18'
          Dst:             hexchar2nibble
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:415,4'
          Dst:             WLog_Print_dbg_tag
    - 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:
        - ''
        - ''
      BBCount:         9
      ICount:          45
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_Data_Write_UINT16
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      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:
        - ''
        - ''
      BBCount:         9
      ICount:          48
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/endian.h:236,3'
          Dst:             winpr_int_assert
    - functionName:    Stream_Write_UINT32_unchecked
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1087
      functionLinenumberEnd: 1094
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          68
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - winpr_Data_Write_UINT32
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1088,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1089,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1090,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:1090,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1092,3'
          Dst:             winpr_Data_Write_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:
        - ''
      BBCount:         13
      ICount:          64
      EdgeCount:       14
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/endian.h:114,3'
          Dst:             winpr_int_assert
    - functionName:    Stream_GetPosition
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1363
      functionLinenumberEnd: 1366
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          54
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1364,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1365,3'
          Dst:             winpr_int_assert
    - functionName:    Stream_Length
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1345
      functionLinenumberEnd: 1347
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          31
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1346,3'
          Dst:             winpr_int_assert
    - functionName:    stream_read_u32_le
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 244
      functionLinenumberEnd: 252
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          64
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_GetRemainingLength
        - Stream_Seek
        - winpr_Data_Get_UINT32
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:246,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:247,3'
          Dst:             Stream_GetRemainingLength
        - Src:             'winpr/include/winpr/stream.h:247,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:249,20'
          Dst:             winpr_Data_Get_UINT32
        - Src:             'winpr/include/winpr/stream.h:251,4'
          Dst:             Stream_Seek
    - functionName:    Stream_Seek
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 157
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          51
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - winpr_int_assert
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:158,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:159,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:159,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:
        - ''
        - ''
      BBCount:         9
      ICount:          36
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/endian.h:222,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:
        - ''
      BBCount:         13
      ICount:          68
      EdgeCount:       14
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      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:
        - ''
      BBCount:         9
      ICount:          33
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/endian.h:40,3'
          Dst:             winpr_int_assert
    - functionName:    ntlm_compute_message_integrity_check
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_compute.c'
      linkageType:     InternalLinkage
      functionLinenumber: 931
      functionLinenumberEnd: 983
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         44
      ICount:          233
      EdgeCount:       54
      CyclomaticComplexity: 12
      functionsReached:
        - winpr_HMAC_Final
        - winpr_HMAC_Free
        - winpr_HMAC_Init
        - winpr_HMAC_New
        - winpr_HMAC_Update
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:937,25'
          Dst:             winpr_HMAC_New
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:939,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:940,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:941,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:947,7'
          Dst:             winpr_HMAC_Init
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:950,7'
          Dst:             winpr_HMAC_Update
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:953,7'
          Dst:             winpr_HMAC_Update
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:965,8'
          Dst:             winpr_HMAC_Update
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:967,8'
          Dst:             winpr_HMAC_Update
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:969,8'
          Dst:             winpr_HMAC_Update
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:974,8'
          Dst:             winpr_HMAC_Update
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:978,7'
          Dst:             winpr_HMAC_Final
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:981,2'
          Dst:             winpr_HMAC_Free
    - functionName:    ntlm_init_rc4_seal_states
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_compute.c'
      linkageType:     InternalLinkage
      functionLinenumber: 893
      functionLinenumberEnd: 928
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          144
      EdgeCount:       20
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Print_dbg_tag
        - winpr_RC4_New
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:894,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:902,7'
          Dst:             winpr_RC4_New
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:904,7'
          Dst:             winpr_RC4_New
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:913,7'
          Dst:             winpr_RC4_New
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:915,7'
          Dst:             winpr_RC4_New
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:919,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:924,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    ntlm_generate_server_sealing_key
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_compute.c'
      linkageType:     InternalLinkage
      functionLinenumber: 879
      functionLinenumberEnd: 884
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          37
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - ntlm_generate_signing_key
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:882,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:883,9'
          Dst:             ntlm_generate_signing_key
    - functionName:    ntlm_generate_signing_key
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_compute.c'
      linkageType:     InternalLinkage
      functionLinenumber: 799
      functionLinenumberEnd: 820
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          98
      EdgeCount:       25
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_Digest
        - winpr_int_assert
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:802,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:803,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:804,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:816,7'
          Dst:             winpr_Digest
    - functionName:    ntlm_generate_client_sealing_key
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_compute.c'
      linkageType:     InternalLinkage
      functionLinenumber: 863
      functionLinenumberEnd: 868
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          37
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - ntlm_generate_signing_key
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:866,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:867,9'
          Dst:             ntlm_generate_signing_key
    - functionName:    ntlm_generate_server_signing_key
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_compute.c'
      linkageType:     InternalLinkage
      functionLinenumber: 847
      functionLinenumberEnd: 852
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          37
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - ntlm_generate_signing_key
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:850,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:851,9'
          Dst:             ntlm_generate_signing_key
    - functionName:    ntlm_generate_client_signing_key
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_compute.c'
      linkageType:     InternalLinkage
      functionLinenumber: 831
      functionLinenumberEnd: 836
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          37
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - ntlm_generate_signing_key
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:834,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:835,9'
          Dst:             ntlm_generate_signing_key
    - functionName:    ntlm_decrypt_random_session_key
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_compute.c'
      linkageType:     InternalLinkage
      functionLinenumber: 760
      functionLinenumberEnd: 785
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          69
      EdgeCount:       22
      CyclomaticComplexity: 3
      functionsReached:
        - ntlm_rc4k
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:761,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:775,10'
          Dst:             ntlm_rc4k
    - functionName:    ntlm_rc4k
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_compute.c'
      linkageType:     InternalLinkage
      functionLinenumber: 657
      functionLinenumberEnd: 666
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_RC4_Free
        - winpr_RC4_New
        - winpr_RC4_Update
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:658,23'
          Dst:             winpr_RC4_New
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:663,18'
          Dst:             winpr_RC4_Update
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:664,2'
          Dst:             winpr_RC4_Free
    - functionName:    ntlm_encrypt_random_session_key
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_compute.c'
      linkageType:     InternalLinkage
      functionLinenumber: 746
      functionLinenumberEnd: 751
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          38
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - ntlm_rc4k
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:749,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:750,9'
          Dst:             ntlm_rc4k
    - functionName:    ntlm_generate_exported_session_key
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_compute.c'
      linkageType:     InternalLinkage
      functionLinenumber: 731
      functionLinenumberEnd: 737
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          39
      EdgeCount:       13
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:732,2'
          Dst:             winpr_int_assert
    - functionName:    ntlm_generate_random_session_key
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_compute.c'
      linkageType:     InternalLinkage
      functionLinenumber: 720
      functionLinenumberEnd: 722
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          35
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_RAND
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:721,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:722,9'
          Dst:             winpr_RAND
    - functionName:    ntlm_generate_key_exchange_key
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_compute.c'
      linkageType:     InternalLinkage
      functionLinenumber: 705
      functionLinenumberEnd: 711
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          39
      EdgeCount:       13
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:706,2'
          Dst:             winpr_int_assert
    - functionName:    ntlm_generate_server_challenge
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_compute.c'
      linkageType:     InternalLinkage
      functionLinenumber: 690
      functionLinenumberEnd: 697
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          51
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - memcmp
        - winpr_RAND
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:691,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:693,6'
          Dst:             memcmp
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:696,9'
          Dst:             winpr_RAND
    - functionName:    ntlm_generate_client_challenge
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_compute.c'
      linkageType:     InternalLinkage
      functionLinenumber: 674
      functionLinenumberEnd: 682
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          51
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - memcmp
        - winpr_RAND
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:675,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:678,6'
          Dst:             memcmp
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:681,9'
          Dst:             winpr_RAND
    - functionName:    ntlm_compute_ntlm_v2_response
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_compute.c'
      linkageType:     InternalLinkage
      functionLinenumber: 577
      functionLinenumberEnd: 645
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          201
      EdgeCount:       28
      CyclomaticComplexity: 8
      functionsReached:
        - ntlm_SecBufferRealloc
        - ntlm_compute_ntlm_v2_hash
        - sspi_SecBufferAlloc
        - sspi_SecBufferFree
        - winpr_HMAC
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:581,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:586,7'
          Dst:             sspi_SecBufferAlloc
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:595,8'
          Dst:             ntlm_compute_ntlm_v2_hash
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:614,7'
          Dst:             sspi_SecBufferAlloc
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:621,8'
          Dst:             winpr_HMAC
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:628,7'
          Dst:             ntlm_SecBufferRealloc
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:637,7'
          Dst:             winpr_HMAC
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:643,2'
          Dst:             sspi_SecBufferFree
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:644,2'
          Dst:             sspi_SecBufferFree
    - functionName:    ntlm_compute_ntlm_v2_hash
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_compute.c'
      linkageType:     InternalLinkage
      functionLinenumber: 426
      functionLinenumberEnd: 524
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         45
      ICount:          323
      EdgeCount:       57
      CyclomaticComplexity: 14
      functionsReached:
        - NTOWFv2FromHashA
        - NTOWFv2FromHashW
        - NTOWFv2W
        - memcmp
        - ntlm_computeMicValue
        - ntlm_computeProofValue
        - ntlm_convert_password_hash
        - ntlm_fetch_ntlm_v2_hash
        - sspi_SecBufferFree
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:427,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:428,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:454,6'
          Dst:             memcmp
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:459,11'
          Dst:             memcmp
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:463,11'
          Dst:             NTOWFv2FromHashW
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:470,11'
          Dst:             NTOWFv2FromHashA
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:481,7'
          Dst:             ntlm_convert_password_hash
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:484,10'
          Dst:             NTOWFv2FromHashW
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:491,10'
          Dst:             NTOWFv2W
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:501,7'
          Dst:             ntlm_computeProofValue
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:504,7'
          Dst:             ntlm_computeMicValue
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:506,4'
          Dst:             sspi_SecBufferFree
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:514,3'
          Dst:             sspi_SecBufferFree
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:515,3'
          Dst:             sspi_SecBufferFree
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:520,10'
          Dst:             ntlm_fetch_ntlm_v2_hash
    - functionName:    ntlm_compute_lm_v2_response
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_compute.c'
      linkageType:     InternalLinkage
      functionLinenumber: 527
      functionLinenumberEnd: 564
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          121
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - ntlm_SecBufferRealloc
        - ntlm_compute_ntlm_v2_hash
        - sspi_SecBufferAlloc
        - winpr_HMAC
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:531,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:535,8'
          Dst:             sspi_SecBufferAlloc
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:544,7'
          Dst:             ntlm_compute_ntlm_v2_hash
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:551,7'
          Dst:             ntlm_SecBufferRealloc
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:556,7'
          Dst:             winpr_HMAC
    - functionName:    ntlm_current_time
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_compute.c'
      linkageType:     InternalLinkage
      functionLinenumber: 250
      functionLinenumberEnd: 258
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          48
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - GetSystemTimeAsFileTime
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:253,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:254,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:256,2'
          Dst:             GetSystemTimeAsFileTime
    - functionName:    ntlm_generate_timestamp
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_compute.c'
      linkageType:     InternalLinkage
      functionLinenumber: 267
      functionLinenumberEnd: 274
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          51
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - memcmp
        - ntlm_current_time
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:268,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:270,6'
          Dst:             memcmp
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:273,3'
          Dst:             ntlm_current_time
    - functionName:    ntlm_write_ntlm_v2_client_challenge
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_compute.c'
      linkageType:     InternalLinkage
      functionLinenumber: 195
      functionLinenumberEnd: 218
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         90
      ICount:          287
      EdgeCount:       92
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_CheckAndLogRequiredCapacityEx
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_Write
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT32_unchecked
        - Stream_Write_UINT8_unchecked
        - ntlm_av_pair_list_length
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:198,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:199,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:201,7'
          Dst:             Stream_CheckAndLogRequiredCapacityEx
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:204,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:204,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:204,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:205,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:205,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:205,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:206,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:206,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:206,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:207,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:207,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:207,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:208,2'
          Dst:             Stream_Write
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:209,2'
          Dst:             Stream_Write
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:210,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:210,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:210,2'
          Dst:             Stream_Write_UINT32_unchecked
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:211,11'
          Dst:             ntlm_av_pair_list_length
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:213,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:216,2'
          Dst:             Stream_Write
    - functionName:    Stream_Write_UINT8_unchecked
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 873
      functionLinenumberEnd: 880
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          68
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - winpr_Data_Write_UINT8
        - winpr_int_assert
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:874,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:875,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:876,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:876,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:878,3'
          Dst:             winpr_Data_Write_UINT8
    - functionName:    Stream_Write_UINT16_unchecked
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 925
      functionLinenumberEnd: 932
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          68
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - winpr_Data_Write_UINT16
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:926,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:927,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:928,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:928,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:930,3'
          Dst:             winpr_Data_Write_UINT16
    - functionName:    Stream_Write
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1187
      functionLinenumberEnd: 1196
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          77
      EdgeCount:       25
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_GetRemainingCapacity
        - Stream_Seek
        - winpr_int_assert
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:1190,4'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1191,4'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1192,4'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:1192,4'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:1194,4'
          Dst:             Stream_Seek
    - functionName:    ntlm_write_ntlm_v2_response
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_compute.c'
      linkageType:     InternalLinkage
      functionLinenumber: 233
      functionLinenumberEnd: 242
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          65
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredCapacityEx
        - Stream_Write
        - ntlm_write_ntlm_v2_client_challenge
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:234,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:235,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:237,7'
          Dst:             Stream_CheckAndLogRequiredCapacityEx
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:240,2'
          Dst:             Stream_Write
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:241,9'
          Dst:             ntlm_write_ntlm_v2_client_challenge
    - functionName:    ntlm_read_ntlm_v2_client_challenge
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_compute.c'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 191
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         32
      ICount:          153
      EdgeCount:       35
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_GetPosition
        - Stream_Length
        - Stream_Read
        - WLog_Print_dbg_tag
        - stream_read_u16_le
        - stream_read_u32_le
        - stream_read_u8
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:158,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:159,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:161,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:164,2'
          Dst:             stream_read_u8
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:165,2'
          Dst:             stream_read_u8
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:166,2'
          Dst:             stream_read_u16_le
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:167,2'
          Dst:             stream_read_u32_le
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:168,2'
          Dst:             Stream_Read
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:169,2'
          Dst:             Stream_Read
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:170,2'
          Dst:             stream_read_u32_le
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:171,9'
          Dst:             Stream_Length
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:171,28'
          Dst:             Stream_GetPosition
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:175,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:184,3'
          Dst:             WLog_Print_dbg_tag
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:189,2'
          Dst:             Stream_Read
    - functionName:    stream_read_u8
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 177
      functionLinenumberEnd: 184
      functionDepth:   0
      returnType:      char
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          62
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_GetRemainingLength
        - Stream_Seek
        - winpr_Data_Get_UINT8
        - winpr_int_assert
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:178,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:179,3'
          Dst:             Stream_GetRemainingLength
        - Src:             'winpr/include/winpr/stream.h:179,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:181,19'
          Dst:             winpr_Data_Get_UINT8
        - Src:             'winpr/include/winpr/stream.h:183,4'
          Dst:             Stream_Seek
    - functionName:    stream_read_u16_le
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 196
      functionLinenumberEnd: 204
      functionDepth:   0
      returnType:      short
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          64
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_GetRemainingLength
        - Stream_Seek
        - winpr_Data_Get_UINT16
        - winpr_int_assert
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:198,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:199,3'
          Dst:             Stream_GetRemainingLength
        - Src:             'winpr/include/winpr/stream.h:199,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:201,20'
          Dst:             winpr_Data_Get_UINT16
        - Src:             'winpr/include/winpr/stream.h:203,4'
          Dst:             Stream_Seek
    - functionName:    Stream_Read
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 732
      functionLinenumberEnd: 738
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          80
      EdgeCount:       25
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_GetRemainingCapacity
        - Stream_Seek
        - winpr_int_assert
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:733,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:734,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:735,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:735,3'
          Dst:             winpr_int_assert
        - Src:             'winpr/include/winpr/stream.h:737,3'
          Dst:             Stream_Seek
    - functionName:    ntlm_read_ntlm_v2_response
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_compute.c'
      linkageType:     InternalLinkage
      functionLinenumber: 221
      functionLinenumberEnd: 230
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          65
      EdgeCount:       19
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_Read
        - ntlm_read_ntlm_v2_client_challenge
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:222,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:223,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:225,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:228,2'
          Dst:             Stream_Read
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:229,9'
          Dst:             ntlm_read_ntlm_v2_client_challenge
    - functionName:    ntlm_write_version_info
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_compute.c'
      linkageType:     InternalLinkage
      functionLinenumber: 119
      functionLinenumberEnd: 134
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         74
      ICount:          217
      EdgeCount:       75
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredCapacityEx
        - Stream_Write
        - Stream_Write_UINT16_unchecked
        - Stream_Write_UINT8_unchecked
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:120,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:121,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:123,7'
          Dst:             Stream_CheckAndLogRequiredCapacityEx
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:128,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:128,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:128,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:129,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:129,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:129,2'
          Dst:             Stream_Write_UINT8_unchecked
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:130,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:130,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:130,2'
          Dst:             Stream_Write_UINT16_unchecked
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:131,2'
          Dst:             Stream_Write
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:132,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:132,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:132,2'
          Dst:             Stream_Write_UINT8_unchecked
    - functionName:    ntlm_read_version_info
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_compute.c'
      linkageType:     InternalLinkage
      functionLinenumber: 95
      functionLinenumberEnd: 108
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          89
      EdgeCount:       27
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_Read
        - stream_read_u16_le
        - stream_read_u8
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:96,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:97,2'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:99,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:102,2'
          Dst:             stream_read_u8
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:103,2'
          Dst:             stream_read_u8
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:104,2'
          Dst:             stream_read_u16_le
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:105,2'
          Dst:             Stream_Read
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:106,2'
          Dst:             stream_read_u8
    - functionName:    ntlm_get_version_info
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sspi/NTLM/ntlm_compute.c'
      linkageType:     InternalLinkage
      functionLinenumber: 59
      functionLinenumberEnd: 83
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          44
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_int_assert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sspi/NTLM/ntlm_compute.c:60,2'
          Dst:             winpr_int_assert
    - functionName:    _ftelli64
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wtypes.h'
      linkageType:     InternalLinkage
      functionLinenumber: 503
      functionLinenumberEnd: 504
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ftello64
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/wtypes.h:504,9'
          Dst:             ftello64
    - functionName:    _fseeki64
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wtypes.h'
      linkageType:     InternalLinkage
      functionLinenumber: 497
      functionLinenumberEnd: 498
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fseeko64
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/wtypes.h:498,9'
          Dst:             fseeko64
    - functionName:    SamClose
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/sam.c'
      linkageType:     InternalLinkage
      functionLinenumber: 391
      functionLinenumberEnd: 398
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          40
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - fclose
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/sam.c:395,10'
          Dst:             fclose
    - functionName:    SamLookupUserW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/sam.c'
      linkageType:     InternalLinkage
      functionLinenumber: 354
      functionLinenumberEnd: 387
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          152
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - ConvertWCharNToUtf8Alloc
        - SamLookupUserA
        - winpr_wcsndup
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/sam.c:361,12'
          Dst:             ConvertWCharNToUtf8Alloc
        - Src:             'winpr/libwinpr/utils/sam.c:366,15'
          Dst:             ConvertWCharNToUtf8Alloc
        - Src:             'winpr/libwinpr/utils/sam.c:370,10'
          Dst:             SamLookupUserA
        - Src:             'winpr/libwinpr/utils/sam.c:378,25'
          Dst:             winpr_wcsndup
        - Src:             'winpr/libwinpr/utils/sam.c:381,27'
          Dst:             winpr_wcsndup
    - functionName:    SamLookupUserA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/sam.c'
      linkageType:     InternalLinkage
      functionLinenumber: 301
      functionLinenumberEnd: 350
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          157
      EdgeCount:       38
      CyclomaticComplexity: 11
      functionsReached:
        - SamAreEntriesEqual
        - SamEntryFromDataA
        - SamFreeEntry
        - SamLookupFinish
        - SamLookupStart
        - SamReadEntry
        - SamResetEntry
        - calloc
        - strlen
        - strtok_s
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/sam.c:304,28'
          Dst:             SamEntryFromDataA
        - Src:             'winpr/libwinpr/utils/sam.c:305,45'
          Dst:             calloc
        - Src:             'winpr/libwinpr/utils/sam.c:310,7'
          Dst:             SamLookupStart
        - Src:             'winpr/libwinpr/utils/sam.c:315,12'
          Dst:             strlen
        - Src:             'winpr/libwinpr/utils/sam.c:321,10'
          Dst:             SamReadEntry
        - Src:             'winpr/libwinpr/utils/sam.c:326,9'
          Dst:             SamAreEntriesEqual
        - Src:             'winpr/libwinpr/utils/sam.c:334,3'
          Dst:             SamResetEntry
        - Src:             'winpr/libwinpr/utils/sam.c:335,15'
          Dst:             strtok_s
        - Src:             'winpr/libwinpr/utils/sam.c:339,2'
          Dst:             SamLookupFinish
        - Src:             'winpr/libwinpr/utils/sam.c:341,2'
          Dst:             SamFreeEntry
        - Src:             'winpr/libwinpr/utils/sam.c:345,3'
          Dst:             SamFreeEntry
    - functionName:    SamEntryFromDataA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/sam.c'
      linkageType:     InternalLinkage
      functionLinenumber: 54
      functionLinenumberEnd: 65
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          91
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - _strdup
        - calloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/sam.c:55,27'
          Dst:             calloc
        - Src:             'winpr/libwinpr/utils/sam.c:59,17'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/utils/sam.c:62,19'
          Dst:             _strdup
    - functionName:    SamLookupStart
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/sam.c'
      linkageType:     InternalLinkage
      functionLinenumber: 138
      functionLinenumberEnd: 179
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         25
      ICount:          172
      EdgeCount:       34
      CyclomaticComplexity: 11
      functionsReached:
        - _fseeki64
        - _ftelli64
        - calloc
        - ferror
        - fread
        - strtok_s
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/sam.c:145,6'
          Dst:             _fseeki64
        - Src:             'winpr/libwinpr/utils/sam.c:147,13'
          Dst:             _ftelli64
        - Src:             'winpr/libwinpr/utils/sam.c:148,6'
          Dst:             _fseeki64
        - Src:             'winpr/libwinpr/utils/sam.c:155,23'
          Dst:             calloc
        - Src:             'winpr/libwinpr/utils/sam.c:160,13'
          Dst:             fread
        - Src:             'winpr/libwinpr/utils/sam.c:164,8'
          Dst:             ferror
        - Src:             'winpr/libwinpr/utils/sam.c:177,14'
          Dst:             strtok_s
    - functionName:    SamReadEntry
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/sam.c'
      linkageType:     InternalLinkage
      functionLinenumber: 189
      functionLinenumberEnd: 270
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         86
      ICount:          493
      EdgeCount:       108
      CyclomaticComplexity: 24
      functionsReached:
        - strchr
        - winpr_HexStringToBinBuffer
        - winpr_int_assert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/sam.c:198,16'
          Dst:             strchr
        - Src:             'winpr/libwinpr/utils/sam.c:208,9'
          Dst:             strchr
        - Src:             'winpr/libwinpr/utils/sam.c:209,9'
          Dst:             strchr
        - Src:             'winpr/libwinpr/utils/sam.c:210,9'
          Dst:             strchr
        - Src:             'winpr/libwinpr/utils/sam.c:211,9'
          Dst:             strchr
        - Src:             'winpr/libwinpr/utils/sam.c:212,30'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/sam.c:212,30'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/sam.c:213,30'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/sam.c:213,30'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/sam.c:247,7'
          Dst:             winpr_HexStringToBinBuffer
        - Src:             'winpr/libwinpr/utils/sam.c:254,21'
          Dst:             winpr_HexStringToBinBuffer
    - functionName:    SamAreEntriesEqual
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/sam.c'
      linkageType:     InternalLinkage
      functionLinenumber: 68
      functionLinenumberEnd: 90
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         33
      ICount:          169
      EdgeCount:       45
      CyclomaticComplexity: 14
      functionsReached:
        - strncmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/sam.c:79,7'
          Dst:             strncmp
        - Src:             'winpr/libwinpr/utils/sam.c:86,7'
          Dst:             strncmp
    - functionName:    SamResetEntry
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/sam.c'
      linkageType:     InternalLinkage
      functionLinenumber: 279
      functionLinenumberEnd: 297
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          71
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SamLookupFinish
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/sam.c'
      linkageType:     InternalLinkage
      functionLinenumber: 182
      functionLinenumberEnd: 186
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SamFreeEntry
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/sam.c'
      linkageType:     InternalLinkage
      functionLinenumber: 273
      functionLinenumberEnd: 276
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - SamResetEntry
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/sam.c:274,2'
          Dst:             SamResetEntry
    - functionName:    WLog_Print_dbg_tag
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/wlog.h'
      linkageType:     InternalLinkage
      functionLinenumber: 323
      functionLinenumberEnd: 335
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          65
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
        - WLog_IsLevelActive
        - WLog_PrintTextMessageVA
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/include/winpr/wlog.h:326,21'
          Dst:             WLog_Get
        - Src:             'winpr/include/winpr/wlog.h:328,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/include/winpr/wlog.h:332,4'
          Dst:             WLog_PrintTextMessageVA
    - functionName:    SamOpen
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/sam.c'
      linkageType:     InternalLinkage
      functionLinenumber: 93
      functionLinenumberEnd: 135
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          105
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - WLog_Print_dbg_tag
        - calloc
        - fclose
        - winpr_GetConfigFilePath
        - winpr_fopen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/sam.c:100,23'
          Dst:             winpr_GetConfigFilePath
        - Src:             'winpr/libwinpr/utils/sam.c:105,8'
          Dst:             winpr_fopen
        - Src:             'winpr/libwinpr/utils/sam.c:108,8'
          Dst:             winpr_fopen
        - Src:             'winpr/libwinpr/utils/sam.c:111,9'
          Dst:             winpr_fopen
        - Src:             'winpr/libwinpr/utils/sam.c:117,21'
          Dst:             calloc
        - Src:             'winpr/libwinpr/utils/sam.c:121,10'
          Dst:             fclose
        - Src:             'winpr/libwinpr/utils/sam.c:130,3'
          Dst:             WLog_Print_dbg_tag
    - functionName:    NTOWFv2FromHashA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 194
      functionLinenumberEnd: 232
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          171
      EdgeCount:       43
      CyclomaticComplexity: 13
      functionsReached:
        - ConvertUtf8NToWCharAlloc
        - NTOWFv2FromHashW
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/ntlm.c:211,11'
          Dst:             ConvertUtf8NToWCharAlloc
        - Src:             'winpr/libwinpr/utils/ntlm.c:218,13'
          Dst:             ConvertUtf8NToWCharAlloc
        - Src:             'winpr/libwinpr/utils/ntlm.c:223,7'
          Dst:             NTOWFv2FromHashW
    - functionName:    NTOWFv2FromHashW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 153
      functionLinenumberEnd: 190
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          161
      EdgeCount:       39
      CyclomaticComplexity: 12
      functionsReached:
        - CharUpperBuffW
        - winpr_HMAC
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/ntlm.c:173,2'
          Dst:             CharUpperBuffW
        - Src:             'winpr/libwinpr/utils/ntlm.c:182,7'
          Dst:             winpr_HMAC
    - functionName:    NTOWFv2A
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 149
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         39
      ICount:          219
      EdgeCount:       53
      CyclomaticComplexity: 16
      functionsReached:
        - ConvertUtf8NToWCharAlloc
        - NTOWFv2W
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/ntlm.c:121,11'
          Dst:             ConvertUtf8NToWCharAlloc
        - Src:             'winpr/libwinpr/utils/ntlm.c:127,13'
          Dst:             ConvertUtf8NToWCharAlloc
        - Src:             'winpr/libwinpr/utils/ntlm.c:133,15'
          Dst:             ConvertUtf8NToWCharAlloc
        - Src:             'winpr/libwinpr/utils/ntlm.c:138,7'
          Dst:             NTOWFv2W
    - functionName:    NTOWFv2W
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 84
      functionLinenumberEnd: 96
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          96
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - NTOWFv1W
        - NTOWFv2FromHashW
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/ntlm.c:92,7'
          Dst:             NTOWFv1W
        - Src:             'winpr/libwinpr/utils/ntlm.c:95,9'
          Dst:             NTOWFv2FromHashW
    - functionName:    NTOWFv1W
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 44
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          53
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - winpr_Digest
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/ntlm.c:39,7'
          Dst:             winpr_Digest
    - functionName:    NTOWFv1A
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/ntlm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 47
      functionLinenumberEnd: 73
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         40
      ICount:          170
      EdgeCount:       49
      CyclomaticComplexity: 11
      functionsReached:
        - ConvertUtf8NToWCharAlloc
        - NTOWFv1W
        - winpr_int_assert
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/ntlm.c:60,15'
          Dst:             ConvertUtf8NToWCharAlloc
        - Src:             'winpr/libwinpr/utils/ntlm.c:65,27'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/ntlm.c:65,27'
          Dst:             winpr_int_assert
        - Src:             'winpr/libwinpr/utils/ntlm.c:65,7'
          Dst:             NTOWFv1W
...
